python列表和元组
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 []

浙公网安备 33010602011771号