列表的使用

列表      list
#list相当于类
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8] #通过list类创建对象,对象的变量值叫li
列表的格式:
用中括号括起来
用“,”号分割元素
元素可包含数字、字符串、列表(可嵌套在列表里,相当于该列表的一个元素,像该例子中的第二个元素:[1,"alxe"],"小花"])、布尔值.....所有的都能放进去
相当于“集合”,内部可放置任何东西
列表的取值:
①索引取值
print(li[0]) #input(li[0])方法与print输出结果一致。输出li中第0个元素
#输出结果为:2
②切片取值
print(li[3:5]) #此方法用input则无法输出。输出li中≥3并且<5的值,注意:切片的结果也是列表
#输出结果为:['age', True]
列表支持for循环和while循环
for item in li:
print(item)
#输出结果为li列表中的每个元素

列表元素的修改:
①索引修改(元素修改为值):
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
li[2]=88 #把li列表中第二个元素替换成88
print(li)
#输出结果为:[2, 398, 88, 'age', True, 8]
(元素修改为列表)
li[0]=["xiao","多多"] #把li列表中第0个元素替换成列表
print(li)
#输出结果为:[['xiao', '多多'], 398, 88, 'age', True, 8]

②切片修改(可同时修改多个元素)
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
li[1:4]=[100,200]
print(li) #把li中≥1并且<3的元素进行修改,也就是把398,["小明",[1,"alxe"],“age”改为:100,200.注意:由此例子可看出多个元素可通过切片把元素减少或增加,由li[1:N]列表中N来控制替换的元素个数
#输出结果为:[2, 100, 200, True, 8]

#若li[1:N]中,N的值为2,则:
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
li[1:2]=[100,200]
print(li)
#输出结果为:[2, 100, 200, ['小明', [1, 'alxe'], '小花'], 'age', True, 8]

元素删除:
①(索引方式)
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
del li[2] #把li列表中的第二个元素删除
print(li)
#输出结果为:[2, 398, 'age', True, 8]

②(切片方式)
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
del li[2:4] #把li列表中的第二个、第三个元素删除
print(li)
#输出结果为:[2, 398, True, 8]

列表支持in操作
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
v1 =398 in li #判断元素398是否在li列表中
v2= 120 in li
print(v1,v2)
#输出结果为:True False
#列表嵌套取值
li=[2,398,["小明",[1,"alxe"],"小花"],"age",True,8]
v=li[2][1][0] #利用相对的方法从外网里找,先找出li列表中的第2个元素["小明",[1,"alxe"],"小花"],再找出该元素中的第1个元素[1,"alxe"],再找出该元素中的第0个元素1
print(v)
#输出结果为:1

#转换:类名()
#①字符串转换成列表:li=("ahjhkk"),内部使用for循环
a=("hsgdjkdjj")
new_li=list(a)
print(new_li)
#输出结果为:['h', 's', 'g', 'd', 'j', 'k', 'd', 'j', 'j']

#②数字不可转换成列表

#③列表转换成字符串(错误方法:因为列表中包含数字和字符串,所以输出结果把整个列表看做一个字符串输出)
li=[11,22,"age","name"]
r=str(li)
print(r)
#输出结果为:[11, 22, 'age', 'name']

正确做法
#当列表中既有数字又有字符串时,需要写一个for循环一个个处理
li=[11,22,"age","name"]
s="" #把s赋一个空值,作为连接
for i in li:
s=s+str(i) #当字符在li列表中时,则先将字符都转换成str字符串类型,再用s作为连接叠加
print(s)
#输出结果为:1122agename

#当列表中只有字符串时,直接使用字符串join方法
li=["123","age"]
v="".join(li) #join的作用是相当于一个for循环,循环li列表中的每一个元素并和前面“”中的元素进行拼接。若v="和".join(li),则输出结果为:123和age
print(v)
#输出结果为:123age

#参数
#列表的追加:append
li=[11,22,"age","name"]
li.append(5) #在li列表中增加元素5
li.append([33,44,"小明"]) #在li列表元素中增加列表
print(li)
#输出结果为:[11, 22, 'age', 'name', 5, [33, 44, '小明']]

#补充:错误做法,列表中的追加无需赋值
li=[11,22,"age","name"]
print(li.append(5))
#输出结果为:None

#清空列表:clear
li=[11,22,"age","name"]
li.clear()
print(li)
#输出结果为:[]

#拷贝:copy(浅拷贝),需要一个值去接收
li=[11,22,"age","name"]
v=li.copy() #v接收拷贝后的值
print(v)
#输出结果为:[11, 22, 'age', 'name']

#计数:count
li=[11,22,"xii",22,33]
v=li.count(22) #计算li列表中元素22的个数
print(v)
#输出结果为:2

#扩展原列表extend,参数为可迭代对象:列表、字符串
li=[11,22,"xii",22,33]
li.extend([9898,"不得了"]) #注:一定要用[]括起来
print(li)
#输出结果为:[11, 22, 'xii', 22, 33, 9898, '不得了']
#与append作比较:
li.append([9898,"不得了"])
print(li)
#输出结果为:[11, 22, 'xii', 22, 33, [9898, '不得了']]
#expend相当于在扩展的部分执行了for循环
for i in [9898,"不得了"]:
li.append(i)
print(li)
#输出结果为:[11, 22, 'xii', 22, 33, 9898, '不得了']

#若扩展部分为字符串“abcd”,则
li.extend("abcd")
print(li )
#输出结果为:[11, 22, 'xii', 22, 33, 'a', 'b', 'c', 'd']

#索引:index,根据值找索引,获取当前值的索引位置(左边优先)
li=[11,22,"xii",22,33]
v=li.index(22) #从前往后找,找到第一个该值后则不再往后找
print(v)
#输出结果为:1

#插入:insert,在指定索引位置插入元素
li=[11,22,"xii",22,33]
li.insert(0,99) #表示在li列表中0位置插入99
print(li)
#输出结果为:[99, 11, 22, 'xii', 22, 33]

#PS删除:pop、remove、del li[0]、del li[1:3]、clear
#删除:pop,删除列表中的指定值,并获取删除的值
#若不给pop()赋值(不指定索引)
li=[11,22,"xii",22,33]
v=li.pop() #默认删除最后一个元素的值并把该值赋给v
print(li)
print(v)
#输出结果为:
#[11, 22, 'xii', 22]
#33

#若 给pop()赋值(指定索引)
li=[11,22,"xii",22,33]
v=li.pop(1) #删除位置为1的值
print(li)
print(v)
#输出结果为:
#[11, 'xii', 22, 33]
#22

#删除:remove,删除列表中的指定值(左边优先)
li=[11,22,"xii",22,33]
li.remove(22)
print(li)
#输出结果为:[11, 'xii', 22, 33]


#翻转:reverse,将当前列表进行翻转
li=[11,22,"xii",22,33]
li.reverse()
print(li)
#输出结果为:[33, 22, 'xii', 22, 11]

#排序:sort,默认从小到大排列
li=[11,22,44,22,33]
li.sort()
print(li)
#输出结果为:[11, 22, 22, 33, 44]

#排序:sort(reverse=True),从大到小排序
li=[11,22,44,22,33]
li.sort(reverse=True)
print(li)
#输出结果为:[44, 33, 22, 22, 11]





posted @ 2018-09-02 16:57  黄黄可爱  阅读(500)  评论(0编辑  收藏  举报