List列表
什么是列表List[],相当于一个容器,列表可用于存储多个数据。可存放多个字符串、整型等其它类型;创建一个列表,不同的数据类型只需要在方括号内使用逗号分隔。
列表[]中的每一个数据元素都会有一个列表中所在位置,即索引下标,类似字符串字符索引。列表中从左往右第一个数据索引是0,第二个数据索引是1,依次类推;如果从右往左索引,则从-1开始。
对于列表中存储的多个数据元素,程序员可以对这些数据执行增、删、改、查操作。
下标
代码示例:
list1 = ['jack','mike','lucy','natas','tom'] # 定义列表list1
print (list1[0]) # 获取列表中第一个数据元素
print (list1[1]) # 获取列表中第二个数据元素
print (list1[-1]) # 获取列表中最后一个数据元素
print (len(list1)) # len函数可以获取字符串的长度、列表的长度
列表相关函数
index():返回指定数据所在位置的下标。
格式:列表序列.index(数据,开始位置下标,结束位置下标) 注意:如果查找的数据不在列表中会报错。
代码示例:
word_list = ['A','B','C']
print(word_list.index('A'))
print(word_list.index('B',1,2))
'''
输出结果:
0
1
'''
count():统计指定数据在当前列表中出现的次数。
代码示例:
word_list = ['A','B','C']
print(word_list.count('A'))
'''
输出结果:
1
'''
len():访问列表长度,即列表中数据的个数。
代码示例:
word_list = ['A','B','C']
print(len(word_list))
'''
输出结果:
3
'''
reverse():改变原列表中数据的位置结构
代码示例:
ict_list = ['rs','cloud','dc','ivs']
result = ict_list.reverse()
print (ict_list)
'''
输出结果:
['ivs','dc','cloud','rs']
'''
判断是否存在
in:判断指定数据在某个列表序列,如果在返回True,否则返回Flase
代码示例:
word_list = ['A','B','C']
print('A' in word_list)
'''
输出结果:
True
'''
not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回Flase
代码示例:
word_list = ['A','B','C']
print('A' not in word_list)
'''
输出结果:
Flase
'''
代码示例:
'''
给定一个列表word_list,提示输入一个字母,判断输入的字符是否和列表中已有的单词重复。
'''
word_list = ['A','B','C','D','E','F']
word = input('输入一个字母:')
for i in word_list: # 循环遍历列表
if word in i:
print ('存在此字母')
break
改变列表中的数据
代码示例:
list2 = ['rs','dc','cloud','wlan','data']
print (list2)
list2[-1] = 'IVS'
# 找到列表中数据所在下标位置执行重新赋值
print (list2)
'''
输出结果:
['rs', 'dc', 'cloud', 'wlan', 'IVS']
'''
list2 = ['rs','dc','cloud','wlan','data']
for i in range(len(list2)): # 使用for获取列表长度,并赋值给i
if 'cloud' in list2[i]: # list2[i]取列表中的下标位置,如果指定数据cloud在列表中,则执行替换
list2[i] = '云计算'
break
print (list2)
'''
输出结果:
['rs', 'dc', 'cloud', 'wlan', 'IVS']
'''
使用函数删除列表中的数据
代码示例:
list2 = ['rs','dc','cloud','wlan','data']
del list2[2] # 删除列表中下标位置是2的数据
print (list2)
'''
输出结果:
['rs', 'dc', 'wlan', 'IVS']
'''
'''
定义一个列表list3['hello','python','world','hi','lucy']
提示输入一个字符,如果输入的字符在列表中存在则删除
打印最终列表
'''
list3 = ['hello','python','world','hi','lucy']
A = input('请输入字符:')
i = 0 # 表示列表list3起始下标
B = len(list3) # 获取列表list3长度
while i < B:
if A in list3[i]:
del list3[i]
B-=1
continue # 跳过下面语句,防止出现漏删
i+=1
print (list3)
'''
请输入字符:l
['python', 'hi']
'''
remove():删除列表中第一个出现的数据,返回值是None;如果没有找到要删除的数据,则报异常。
代码示例:
ict_list = ['rs','cloud','dc','ivs']
result = ict_list.remove('cloud')
print (result)
print (ict_list)
'''
输出结果:
None
['rs','dc','ivs']
'''
pop():弹栈,删除列表末尾数据;返回值是删除的数据元素
代码示例:
ict_list = ['rs','cloud','dc','ivs']
result = ict_list.pop()
print (result)
print (ict_list)
'''
输出结果:
ivs
['rs','cloud','dc']
'''
result = ict_list.pop(1) # 指定下标位置对列表中数据pop弹出
'''
输出结果:
['rs',,'dc']
'''
列表切片
代码示例:
list4 = ['zero','one','two','three','four','five','six','seven']
print (list4[3:6])
print (list4[::2])
print (list4[1:6:2]) # [1:6:2]中2表示步长
print (list4[-3:-1])
'''
输出结果:
['three', 'four', 'five']
['zero', 'two', 'four', 'six']
['one', 'three', 'five']
['five', 'six']
'''
print (list4[-1::-1]) # [-1::-1]中-1表示从列表中逆向取值
'''
输出结果:
['seven', 'six', 'five', 'four', 'three', 'two', 'one', 'zero']
'''
列表添加数据
列表使用内置函数向列表添加数据 append()末尾追加
代码示例:
list5 = ['lucy']
name = input ('请输入名称:')
list5.append(name) # 将name赋值追加至列表尾部
print list5
'''
使用循环多次向列表追加数据
'''
list5 = ['lucy']
while True:
name = input ('请输入名称:')
if name == quit:
break
list5.append(name)
print list5
extend()列表的合并
代码示例:
list5 = ['lucy']
names = ['ZJL','MHT']
list5.extend(name)
print (list5)
'''
输出结果:
['lucy','ZJL','MHT']
'''
list5 = list5 + names # +也可以用于列表的合并
print (list5)
insert()指定位置将数据插入列表中
代码示例:
names = ['ZJL','MHT']
names.insert(1,'YT') # 将'YT'插入列表,下标位置是1,原有数据后移
print (names)
'''
输出结果:
['ZJL','YT','MHT']
'''
列表应用案例
代码示例:
'''
1.产生10个随机数
2.将产生的随机数存放入列表之中
3.打印列表
'''
import random
random_list = []
for i in range(10):
ran = random.randint(1,20)
random_list.append(ran)
print (random_list)
'''
要求产生的10个不同的随机的数,不能出现重复
'''
import random
random_list = []
i = 0
while i < 10:
ran = random.randint(1,20)
if ran not in random_list: # 判断ran数值是否不在random_list列表中,如果不在则将产生的随机数添加至列表
random_list.append(ran)
i+=1
print (random_list)
'''
求出列表random_list中的最大数值、最小数值
'''
max_value = random_list[0] # 假设列表中第一个数值就是最大值,然后将其和列表中的每个数值做比较
min_value = random_list[0]
for value in random_list:
if value > max_value: # 如果列表中的任意数值比假设的max_value值大
max_value = value # 则将最大值赋值给max_value,最终求出最大值
if value < min_value:
min_value = value
print ('Max Value:',max_value,'Min Value:',min_value)
'''
使用max函数、min函数求出列表中的最大值、最小值
'''
max_value = max(random_list) # 使用max函数求出列表中的最大值
print (max_value)
min_value = min(random_list) # 使用min函数求出列表中的最小值
print (min_value)
'''
求出列表random_list中的所有数之和
'''
sum = 0
for value in random_list:
sum+=value
print (sum)
列表排序
sorted()排序,默认是升序,也可以降序
代码示例:
new_list = ['5','3','1','4','2']
sort_list = sorted(new_list)
print (sort_list)
sort_list = sorted(new_list,reverse=True) # reverse=True降序
print (sort_list)
'''
输出结果:
['1', '2', '3', '4', '5']
['5', '4', '3', '2', '1']
'''
sort()排序,默认是升序,也可以降序
代码示例:
new_list = ['5','3','1','4','2']
sort_list.sort()
print (sort_list)
sort_list.sort(reverse=True) # reverse=True降序
print (sort_list)
'''
输出结果:
['1', '2', '3', '4', '5']
['5', '4', '3', '2', '1']
'''
列表嵌套
代码示例:
new_list1 = ['1','2',[3],'4','5'] # 在new_list1列表中嵌套列表[3]
result = [3] in new_list1 # 判断[3]是否在new_list1列表之中
print (result)
'''
输出结果:
True
'''
new_list2 = [[1,2],[3,4],[3,6,7]] # 列表中嵌套的每一个列表都表示一个数据元素
print (len(new_list2))
'''
输出结果:
3
'''
print (new_list2[2][1])
'''
输出结果:
6
'''
list():类型转换
代码示例:
A = 'abc' # 定义字符串类型
result = list(A) # 使用list()将A转换成列表方式
print (result)
'''
输出结果:
['a','b','c']
'''
使用list()转换,转换的对象必须是可以迭代的,什么是可迭代的,可以使用for循环依次取值的对象都是可迭代的
代码示例:
result = list(10)
print (result)
'''
输出结果:
TypeError: 'int' object is not iterable 这个对象int是不可迭代的
'''