欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Day_05 列表

程序员文章站 2024-02-10 11:14:35
...
1.输出函数print()

默认每一个print函数,输出完内容后会输入一个换行
一个print函数输出多个内容的时候,内容之间是用空格隔开的。
print('aaa',100.end='**')默认为end='\n'设置输出以什么结束。
print('aaa',100,end='\n',sep=' ')通过设置sep的值,来设置多个内容之间的间隔符(默认是'空格)

print('a','b',end='*',sep='@')
[email protected]*[Finished in 0.4s]

input()函数可以接收从控制台输入的内容(以回车为结束标志)
input()函数会阻塞线程,程序执行input()时候会等待用户输入,输入完成后,继续执行。
input()函数接收到的数据是以字符串形式返回(python2.x中输入的是数字的时候,可能返回int型或浮点数类型)

猜数游戏:
import random
suiji = random.randint(1,100)
guess = input('enter ther number:')
if int(guess)<suiji:
    print('too low')
elif int(guess)>suiji:
    print('too big')
elif int(guess)==suiji:
    print('good')
print('the random number:%d'%suiji)

enter ther number:23
too low
the random number:87

列表、字典、元组、集合都是序列,都是容器类型的数据类型。
列表(list):用来存储多个数据的一种数据类型,里面存储的单个数据叫元素。
特点:1.有序的 2.可变的(列表的内容个数与值可变) 3.元素可以是任何类型的数据
类型转换:整型和浮点数不能转换为列表,字符串可以 list1 = list(str)

list1 = list('abc')
print(list1)

['a', 'b', 'c']
[Finished in 0.4s]

列表的声明方式:
方式1:list1 = [1,2,3] list1 = []空列表
方式2:将其他的数据类型转换为列表,只有序列能转换 list1 = list(str)
方法3:通过生成式创建列表 list2 = list(i for i in range(10))
list2 = list(i*2 for i in range(10) if i%2==0)

list1 = [1,2,3]
list2 = []
list3 = str('abc')
list4 = list(i*2 for i in range(6))
print(list1,list2,list3,list4)

[1, 2, 3] [] abc [0, 2, 4, 6, 8, 10]
[Finished in 0.6s]

列表相关操作:列表中的每一个元素都对应一个下标:0-列表长度-1;-1- -列表长度

1.获取列表元素

list1 = [1,2,3,4,5]
print(list1[2])
print(list1[::-1])逆序获取
print(list1[0:5:2])步进获取 list1[开始:结束:步进],按步进对下标等差获取
print(list1[:])获取列表所有元素,重新创建一个新的列表

注意:开始、结束、步进都可以缺省(不能同时)。步进为正,开始缺省,则从左-右依次获取,为负,从右-左获取

names = ['路飞','佐罗','娜美','鸣人','佐助']
print(names[3],names[4],end='\n',sep=' vs ')
print(names[0:5:2])
print(names[-5::])
print(names[::-1])
print(names[::-2])
print(names[:])

鸣人 vs 佐助
['路飞', '娜美', '佐助']
['路飞', '佐罗', '娜美', '鸣人', '佐助']
['佐助', '鸣人', '娜美', '佐罗', '路飞']
['佐助', '娜美', '路飞']
['路飞', '佐罗', '娜美', '鸣人', '佐助']
[Finished in 1.1s]

列表的遍历

score = [12,14,456,7,9,69]
for x in score:
    print(x)

列表的长度:获取列表中元素的个数
len(list1)

list1 = [1,2,3,4,5]
print(len(list1))

5
[Finished in 0.3s]

列表while遍历

score = [12,124,4436,768,79]
x = 0
while x<len(score):
    print(score[x])
    x+=1

添加列表元素:
1.append()函数:添加元素 list1.append(元素)
注意:append()函数在列表的年末未添加一个元素
2.insert()函数:insert(index,元素)在列表指定的下标中插入元素
注意:insert()函数下标可以越界:list1 = [1,2,3]
list1.insert(4,4)-->list1 =[1,2,3,4]
3.+ :列表1+列表2,将列表2中的元素,添加到列表1中
list1 = [1,2,3] list2 =['a','b','c']
list1+list2 = [1,2,3,'a','b','c']

list1 = []
list1.append(1)
list1.append(2)
list1.insert(2,3)
list2 = ['a','b','c']
list3 = list1+list2
print(list1,list3)

[1, 2, 3] [1, 2, 3, 'a', 'b', 'c']
[Finished in 0.8s]

删除列表元素:
1.del可以删除任何数据
del 列表[下标]:s删除列表中指定下标的元素
del list1[0]:删除列表第一个元素,删除后列表下标重新刷新

films = ['肖生克的救赎','阿甘正传','摔跤吧爸爸','海上钢琴师','美丽人生']
del films[0]
print(films)
['阿甘正传', '摔跤吧爸爸', '海上钢琴师', '美丽人生']

获取列表中元素的下标:list.index(元素)

films = ['肖生克的救赎','阿甘正传','摔跤吧爸爸','海上钢琴师','美丽人生']
print(films.index('阿甘正传'))

1
[Finished in 0.5s]

2.remove(元素):删除列表指定的元素,如果列表中元素重复的有多个,remove函数只删除前面的。
如果要删除的元素不在列表中,则会报错。错误类型ValueError

films = ['肖生克的救赎','阿甘正传','摔跤吧爸爸','海上钢琴师','美丽人生']
films.remove('肖生克的救赎')
print(films)

['阿甘正传', '摔跤吧爸爸', '海上钢琴师', '美丽人生']
[Finished in 0.5s]

3.pop()方法:
列表.pop():将列表最后一个元素取出来
列表.pop(下标)取出列表中指定下标的元素

films = ['肖生克的救赎','阿甘正传','摔跤吧爸爸','海上钢琴师','美丽人生']
films.pop()
print(films)
films.pop(0)
print(films)
str1 =films.pop(0)
print(str1)

['肖生克的救赎', '阿甘正传', '摔跤吧爸爸', '海上钢琴师']
['阿甘正传', '摔跤吧爸爸', '海上钢琴师']
阿甘正传
[Finished in 0.8s]

注意:pop()函数进行删除元素操作时,下标不能越界
注意:del()和remove()方法直接将列表中元素从内存中删除,pop()函数将元素移除,可以使用这个移除的元素。

练习:使用列表保存10个学生的成绩

score = []
for x in range(1,11):
    gread = int(input('输入第%d个学生的成绩:'%x))
    score.append(gread)
    print('第%d个学生的成绩是:%d'%(x,score[x-1]))

输入第1个学生的成绩:23
第1个学生的成绩是:23
输入第2个学生的成绩:23
第2个学生的成绩是:23
输入第3个学生的成绩:

练习:删除列表中小于60的成绩

score = [23,45,78,32,90,89,1]
for x in  score[:]:
    if x<60:
        score.remove(x)
print(score)

[78, 90, 89]

修改列表的元素
通过下标获取元素然后重新赋值:list[下标]=新值
注意:下标不能越界

判断元素是否在列表中
元素 in list 元素 not in list 返回一个bool值

names = [1,2,2,3,4,5,1,5,6]
names1 = []
for x in names:
    if x not in names1:
        names1.append(x)
print(names1)

获取列表长度
len(列表)

列表*数字:让列表中的元素重复n次,产生一个新的列表

获取列表中的最大的元素和最小元素
max(列表) min(列表)
注意:如果列表全为数字,则比较数字的大小,全为字符串,比较字符串首字母大小

统计元素在列表中出现的次数
list.count(元素)

extend:添加元素 list.extend(),将序列中每一个元素,添加到列表中
list.extend(['hello,world'])不加中括号就会按字母添加

list.index(元素):获取指定元素在指定列表中的下标,如果元素有多个,取第一个

list.reverse():将列表倒序
123 321
注意:此函数对元列表进行操作,不会产生新的列表
list = [1,2,3]
list.reverse()
print(list)

sort():对列表进行排序
list.sort() 默认升序,降序list.sort(reverse=True)

list.clear():请空列表
list.clear() 等同于 list = []

list.copy():复制列表
注意:复制的是列表的中元素,重新创建新的列表,不复制列表的地址
list.copy() 相当于 list1 = list[:],都是创建新的列表,只复制原列表的元素