list
列表声明
names = [\'jack\',\'tom\',\'lucy\',\'superman\',\'ironman\']
computer_brands = []
print(id(names),id(computer_brands))
1936992438216 1936992438920
元素获取
通过下标和切片
获取全部元素
print(names)
获取第一个元素
print(names[0])
获取最后一个元素
print(names[-1])
print(names[len(names)-1])
获取第二个到第四个元素
print(names[1:4])
获取第二个到最后一个元素
print(names[1:])
获取第二个元素到最后,间隔一个元素取一个元素
print(names[1::2])
循环遍历
查看超人是否在列表中
for name in names:
if name == \'superman\':
print(\'超人在里面!\')
break
else:
print(\'这里没有超人\')
in方法
查看超人是否在列表中
if \'superman\' in names:
print(\'超人在里面\')
else:
print(\'这里没有超人\')
更改
下标更改
brands = [\'hp\',\'dell\',\'thinkpad\',\'支持华为\',\'mac\',\'联想\']
brands[-1] = \'lenovo\'
print(brands)
[\'hp\', \'dell\', \'thinkpad\', \'支持华为\', \'mac\', \'lenovo\']
遍历更改
for i in range(len(brands)):
if \'华为\' in brands[i]:
brands[i] = \'HUAWEI\'
break
print(brands)
[\'hp\', \'dell\', \'thinkpad\', \'HUAWEI\', \'mac\', \'lenovo\']
删除
del
del brands[2]
print(brands)
[\'hp\', \'dell\', \'HUAWEI\', \'mac\', \'lenovo\']
根据内容删除多个元素
lens = len(brands)
i = 0
while i<lens:
if \'hp\' in brands[i] or \'dell\' in brands[i]:
del brands[i]
lens -= 1
continue
i+=1
print(brands)
[\'HUAWEI\', \'mac\', \'lenovo\']
remove()
删除列表中第一次出现的元素,返回值为None
如果没有找到要删除的元素,则报出异常
hotpot_list = [\'海底捞\',\'呷哺呷哺\',\'张亮麻辣烫\',\'热辣一号\',\'张亮麻辣烫\']
hotpot_list.remove(\'张亮麻辣烫\')
print(hotpot_list)
[\'海底捞\', \'呷哺呷哺\', \'热辣一号\', \'张亮麻辣烫\']
pop()
移除列表中最后一个元素
返回值为删除的元素
hotpot_list = [\'海底捞\', \'呷哺呷哺\', \'热辣一号\', \'张亮麻辣烫\']
a = hotpot_list.pop()
print(hotpot_list)
print(a)
[\'海底捞\', \'呷哺呷哺\', \'热辣一号\']
张亮麻辣烫
clear()
清除列表(里面的所有元素全部删除)
没有返回值
hotpot_list = [\'海底捞\', \'呷哺呷哺\', \'热辣一号\']
a = hotpot_list.clear()
print(hotpot_list)
print(a)
[]
None
列表添加
append() 末尾追加
girls = []
name = input(\'请输入你心目中的美女名字: \')
girls.append(name)
print(girls)
请输入你心目中的美女名字: 杨幂
[\'杨幂\']
循环追加
girls = []
while True:
name1 = input(\'请输入你心目中的美女名字: \')
if name1 == \'quit\' or name1 == \'exit\':
break
girls.append(name1)
print(girls)
请输入你心目中的美女名字: 杨幂
请输入你心目中的美女名字: 宋宋姐
请输入你心目中的美女名字: 诸葛大力
请输入你心目中的美女名字: exit
[\'杨幂\', \'宋宋姐\', \'诸葛大力\']
insert
插入:根据下标插入
name1 = [\'杨志刚\',\'于和伟\',\'陈震\']
name1.insert(1,\'胡歌\')
print(name1)
[\'杨志刚\', \'胡歌\', \'于和伟\', \'陈震\']
extend
一次添加多个元素
类似列表的合并
name1 = [\'杨志刚\',\'于和伟\',\'陈震\']
girls = [\'杨幂\',\'刘涛\']
name1.extend(girls)
print(name1)
[\'杨志刚\', \'于和伟\', \'陈震\', \'杨幂\', \'刘涛\']
也可以使用符号\'+\'
name1 = [\'杨志刚\',\'于和伟\',\'陈震\']
girls = [\'杨幂\',\'刘涛\']
name1 = name1+girls
print(name1)
[\'杨志刚\', \'于和伟\', \'陈震\', \'杨幂\', \'刘涛\']
产生10个随机数,将其保存到列表中
1~20范围内
import random
random_list = []
for i in range(10):
ran = random.randint(1,20)
random_list.append(ran)
print(random_list)
[3, 1, 11, 7, 13, 16, 8, 16, 8, 11]
产生10个随机数,不能相同,将其保存到列表中
import random
random_list = []
i = 0
while i < 10:
ran = random.randint(1,11)
if ran not in random_list:
random_list.append(ran)
i += 1
print(random_list)
[1, 5, 2, 9, 7, 11, 3, 6, 8, 10]
列表嵌套
list1 = [[1,2],[3,2,1],[4,5]]
a = len(list1)
print(a)
a = [1,2] in list1
print(a)
a = [3,2] in list1
print(a)
a = list1[1]
print(a)
a = list1[2][0]
print(a)
3
True
False
[3, 2, 1]
4
函数
求列表中最大最小值
max函数求最大值
mvalue = max(random_list)
print(mvalue)
min函数求最小值
minvalue = min(random_list)
print(minvalue)
自定义方式
maxvalue = random_list[0]
minvalue = random_list[0]
for value in random_list:
if value > maxvalue:
maxvalue = value
if value < minvalue:
minvalue = value
print(maxvalue,minvalue)
求和
sumvalue = sum(random_list)
print(sumvalue)
sumvalue = 0
for values in random_list:
sumvalue += values
print(sumvalue)
排序
sorted()
默认是升序
指定reverse=True后为降序
new_list1 = sorted(random_list)
print(new_list1)
new_list1 = sorted(random_list,reverse=True)
print(new_list1)
[16, 18, 29, 70, 75, 79, 85, 87, 94, 97]
[97, 94, 87, 85, 79, 75, 70, 29, 18, 16]
sort()
list1 = [4,8,1,8,9,5,7]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
[1, 4, 5, 7, 8, 8, 9]
[9, 8, 8, 7, 5, 4, 1]
反转
改变列表元素本身的位置结构
没有返回值
hotpot_list = [\'海底捞\', \'呷哺呷哺\', \'热辣一号\', \'张亮麻辣烫\']
hotpot_list.reverse()
print(hotpot_list)
[\'张亮麻辣烫\', \'热辣一号\', \'呷哺呷哺\', \'海底捞\']
统计出现的次数
count
list1 = [4,8,1,8,9,5,7]
a = list1.count(8)
print(a)
enumerate()枚举
枚举函数
用于将一个可遍历的数据对象(如列表,元组,字符串)组合为一个索引序列
list1 = [\'海底捞\', \'呷哺呷哺\', \'热辣一号\']
for indexs,values in enumerate(list1):
print(indexs,values)
0 海底捞
1 呷哺呷哺
2 热辣一号
for index,value in enumerate(\'呷哺呷哺\'):
print(index,value)
0 呷
1 哺
2 呷
3 哺
算法
冒泡排序
两种方式
nums = [8,10,7,5]
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if nums[i] > nums[j]:
nums[i],nums[j] = nums[j],nums[i]
print(nums)
[5, 7, 8, 10]
mylist = [1,4,0,7]
for i in range(len(mylist)-1):
for j in range(len(mylist)-1-i):
if mylist[j] > mylist[j+1]:
mylist[j],mylist[j+1] = mylist[j+1],mylist[j]
print(mylist)
[0, 1, 4, 7]
tuple
类似列表
特点
- 1 定义的符号()
- 2 元组中的内容不可更改
当元组中只有单个元素时,需要加逗号
t1 = ()
print(t1,type(t1))
t2 = (1)
print(t2,type(t2))
t3 = (\'hello\')
print(t3,type(t3))
t4 = (1,)
print(t4,type(t4))
() <class \'tuple\'>
1 <class \'int\'>
hello <class \'str\'>
(1,) <class \'tuple\'>
拆包
t1 = (4,7,9)
a,b,c = t1
print(a,c)
当变量个数和元组个数不一致时
会报错,该如何处理
t1 = (2,5,8,9,7)
a,*b,c = t1
print(a,b,c)
*a,b = t1
print(a,b)
t1 = (4,)
a,*b = t1
print(a,b)
2 [5, 8, 9] 7
[2, 5, 8, 9] 7
4 []