day 4 - 1 列表

时间:2022-03-29 20:08:50

1.列表的增删改查

1)  append insert extend

li = ["ysg",[1,2,3,4,5],"peipei","梦幻","利金斯"]

#append 在末尾增加
li.append('阴天')
li.append("")
li.append("[12,13,14]")
print(li)

小示例:循环向列表中添加数据,输入 "Q|q" 结束
li = []
while 1:
username = input(">>>")
if username.strip().upper() == 'Q':
  break
else:
  li.append(username)
print(li) # insert 插入 li=["abc","efg"]
li.insert(1,"d")
print(li) #extend 迭代插人到最后
# 'int' object is not iterable li=["abc","efg"]
li.extend("亦双弓")
print(li) li.extend([1,2,3])
print(li) li.extend(123)
print(li)

2)删除 pop remove clear del

li = ["ysg",[1,2,3,4,5],"peipei","梦幻","利金斯"]

name = li.pop(1)
print(name,li) #有返回值
print(li) name = li.pop() #默认删除最后一个值
print(name,li)

li.remove([1,2,3,4,5]) #按元素删除,没有返回值
print(li)

li.clear() #清空列表
print(li)

del li # 删除列表
print(li) del li[3:] #del 结合切片删除
print(li)

3)改 

li = ["ysg",[1,2,3,4,5],"peipei","梦幻","利金斯"]
li[1] = "and"
li[1] = [1,2,3]
print(li) #切片 当添加的值小于切片的范围时,只添加已有的值
#即:添加的原理是 先删除后添加
li[0:3] = "ysg"
print (li) li[0:3] = "hw"
print (li) #如果添加的值大于切片的范围时,大于的值在切片范围后继续添加
li[0:3] = [1,2,3,"abc","efg"]
print(li)

4)查 for循环 切片

li = ["ysg",[1,2,3],"peipei","黎幻镇","利金斯"]

for i in li:
print(i) print(li[0:3])

2.公共方法

li = ["ysg",[1,2,3],"ysg","peipei","黎幻镇","利金斯"]

l = len(li) #数组长度
print(l) print(li.count('ysg')) #统计出现次数 print (li.index("peipei")) #索引出现位置,默认第一次出现的位置

3.排序

li = [1,5,3,8,7,9,2,3]

li.sort()  #sort 排序是最快的 因为使用 C 语言的写的
print(li) li.sort(reverse=True) #倒序
print(li) li.reverse() #反转
print(li)

4.列表的嵌套

#1)找到 梦幻 中的幻字

print(li[4][1])

# 2)把 利金斯 中的 金斯 改为 益

li[5]="利益"
print(li) li[5]=li[5].replace("金斯","益")
print(li) # 3)把 peipei 首字母大写 li[3]=li[3].capitalize()
print(li[3],li)

5.元组

#只读列表,可循环查询 可切片
#儿子不能改 孙子可能可以改 yu=(12,3,'ysg',[1,23,'ysg'])
print(yu[2])
print(yu[3]) for i in yu:
print(i) #修改 元祖中的数组
yu[3][1]=2
print(yu) #修改 元祖中的数组
yu[3][2]=yu[3][2].upper()
print(yu) #在元祖中的数组添加值 yu[3].append("end")
print(yu)

7.join 列表转换为字符串

#字符串转换为列表 split
#注意:使用 join 时,列表中不能再存在列表
li = ["ysg","ysg","peipei","黎幻镇","利金斯"]
print(li) j = "_".join(li)
print(j)

8. range 生成数字列表,顾头不顾尾

for i in range(0,10):
print(i) for i in range(3,10):
print(i) for i in range(10):
print(i) for i in range(0,10,2):
print(i) for i in range(10,0,-1):
print(i) for i in range(10,0,-2):
print(i) for i in range(0,10,-1): #什么都不输出
print(i) for i in range(10,-10,-2):
print(i) for i in range(10,-2): #什么都不输出
print(i) for i in range(-2,10): # -2 为开头
print(i)