列表是一个数据的集合,集合内可以放任何数据类型,可对集合进行方便的增删改查操作 1. 定义列表:
方法一:
L1 = [] #定义空列表
L2 = ['A', 'B', 'C'] #存3个值,索引0-2
L3 = ['A', ['B', 'C'], 'C'] #嵌套列表
方法二:
L4 = list()
print(L4)
列表定义的值可重复
L5 = ['a', 'A', 'b', 'a', 'B']
2. 查询
变量名[索引] #查询索引对应值
变量名.index(内容) #查看值索引(重复内容只给出第一个内容的索引值)
变量名.count(内容) #统计重复值个数
3. 切片
切片时,索引从小到大,从左到右
变量名[开始索引:结束索引] #只有开头没有结尾
变量名[索引:] #开始索引到末尾都可取得
变量名[:索引] #从开头到结束索引
变量名[:] #提取整个列表值
变量名[索引:索引:n] #在当前索引范围内,每隔n个字符串,提取一次
4. 增加
变量名.append('字符串') #追加字符串
变量名.insert(索引, '字符串') #在索引前插入字符串
5. 修改
变量名[索引] = '字符串' #修改当前索引字符串内容
6. 删除
变量名.remove('值') #重复值只删除第一个
del 变量名[索引]
del 变量名
del 变量名[索引:索引] #批量删除某一段
变量.clear() #清空列表
7. 循环
循环打印列表
for 临时变量 in 变量:
print(临时变量)
range(10) #生成0-10的列表
for i in range(10):
print(i)
1
...
9
10
8. 排序
变量名.sort() #按照ASCII编码表排序
变量名.reverse() #倒序排列
9. 合并
变量A + 变量B #将两个列表里的内容合并成一个列表
变量A.extend(变量B)
10. copy
L2 = L1.copy() #copy列表L1里的值到列表L2,并且在更改L1列表值时不影响L2列表
练习:
1. 循环names列表,打印每个元素的索引值,和元素,当索引值为偶数时,把对应的元素改成-1
names = [1, 2, 3, 4, 2, 5, 6, 2, 'old_dirver', 'rain', ['oldboy', 'oldgirl'], 'javk', ['李明'], 'peiqi', 'alex', 'black_girl']
for index,i in enumerate(names): #enumerate 枚举
if index % 2 == 0:
names[index] = -1
print(index, i)
print(names)
2. products = [['Iphone8',6888],['MacPro',14800],['小米6',2499],['Coffee',31],['Book',80],['Nike Shoes',799]],写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购物车里的商品列表。
products = [['Iphone8', 6888],['MacPro', 14800],['小米6', 2499],['Coffee', 31],['Book', 80],['Nike Shoes', 799]]
commodities = [] exit_flag = False #标识位
while not exit_flag:
print('------------List of commodities------------')
for index,i in enumerate(products):
print("%s. %s %s" %(index, i[0], i[1])) choice = input('输入你想要的商品编号:')
if choice.isdigit():
choice = int(choice)
commodities.append(products[choice])
print('你选择了: ', products[choice])
# if choice >= 6:
# print('The number of input must less than 6 !')
# continue
# elif choice < 0:
# print("The number of input can't be negative !")
# continue
elif choice == 'q':
print('========== 你选择的所有商品如下 ==========')
for index,i in commodities:
print('%s %s' %(index,i))
#break
exit_flag = True