1.6 列表list

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是不可迭代的
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值