1 2 3 4

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 []
posted @ 2020-02-11 17:17  多走多看  阅读(282)  评论(0)    收藏  举报