列表 (list)

一、 输入、输出函数

1.输入函数:print()函数

(1)默认每一个print函数,输出完内容后会输出一个换行
(2)一个print函数输出多个内容的时候,内容之间是用空格隔开
(3)内容后面加 end= 来设置结束标志,(默认是\n)
(4)通过设置 sep 的值,来设置多个内容之间的间隔符(默认是’ ‘)

print('aa',1,end='\n',sep=',')

2.输入函数:input()函数

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

value=input('请输入一个整数:')
 print('name',value,type(value))       #name 12 <class 'str'>
练习:猜数字游戏

要求:随机产生一个1-100的整数,输入的数字和随机产生的一样是,就显示猜对了,并且游戏结束但输入的数字大于或小于随机数,就提示大了或小了,然后让其重新输入

import random     #先导入random(随机)函数
random_num=random.randint(1,100)   #在1-100之间随机产生一个数
print(random_num)    
count=0
while True:
    num = int(input('请输入一个数:'))   
    count+=1
    if num == random_num:
        print('恭喜你猜对了!')
        if count >=7:
            print('继续加油')
        if count==1:
            print('太厉害了')
        break
    if num < random_num:
        print('小了')
    if num > random_num:
        print('大了')

二、列表

列表、字典、元祖、集合都是序列,都是容器类型的数据类型

列表(list):用来存储多个数据的一种数据类型,里面储存的单个数据叫元素

特点:
1.有序的
2.可变的(可变指的是容器的内容的个数和值可变)
3.元素可以是任何类型的数据

列表的值:用[]将列表的元素括起来,多个元素之间用逗号隔开,[] —>空列表

1.声明列表

列表命名一般是复数 ,例:names[]

list1 = []            # 创建空列表
print(type(list1))            # <class 'list'>

(1)声明一个变量,赋一个列表值

list2 = [1, 2, [1, 2], {'a': 1}, 'a']
print(type(list2), list2)      # <class 'list'> [1, 2, [1, 2], {'a': 1}, 'a']

(2)将其他数据类型转化成列表

list3 = list('212jjan')
print(list3)           # ['2', '1', '2', 'j', 'j', 'a', 'n']

(3)生成式(了解)

list4 = list(i for i in range(10))
print(list4)        # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list4 = list(i * 2 for i in range(10))
print(list4)        # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

list4 = list(i * 2 for i in range(10) if i % 3 == 0)
print(list4)        # [0, 6, 12, 18]

2.获取列表元素

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

(1)获取单个元素:列表名[下标]
下标不能越界

names=['1','2','3','4','5','6','7','8']
print(names[3])  #4

(2)获取部分元素(切片)
<1>列表名[开始下标:结束下边:] 获取从开始下标到结束下标前所有的元素,结果是个小列表
<2>列表名[起始下标:结束下标:步进] 从开始下标开始,每次下标值加步进获取下一个元素,直到结束下标为止
<3>起始下标和结束下标都可以缺省
<4>如果步进是正数,起始下标缺省就从第一个元素开始获取;如果步进是负数,就从最后一个元素往前获取
<5>结束下标缺省,步进是正数,获取到最后一个,步进数负数,从后往前获取到第一个元素

names=['1','2','3','4','5','6','7','8']
print(names[1:3])   #['2', '3']
print(names[-3:-1])   #['6', '7']
print(names[::-1])  #['8', '7', '6', '5', '4', '3', '2', '1']

(3)一个一个的获取列表中所有的元素(遍历列表)
利用循环将列表中的元素挨个取出来
for循环遍历—>遍历元素
while循环遍历—>遍历下标

scores=[45,86,23,85,22,96,84]

# for循环遍历(遍历元素)
for item in scores:
    print(item)
'''
结果:
45
86
23
85
22
96
84
'''

# while循环遍历(遍历下标)
index=0
while index<len(scores):
    print(scores[index])
    index+=1
'''
结果:
45
86
23
85
22
96
84
'''

3.获取列表的长度(获取列表元素的个数)

print(len(scores))  #7

添加列表元素(3种)

1.append(元素)

列表.append(元素)
功能:在列表的末尾添加一个元素

skills=[]
skills.append('气体源流')
print(skills)    #['气体源流']

skills.append('拘灵遣将')
print(skills)    #['气体源流', '拘灵遣将']

2.insert函数

列表.insert(下标,元素) (注意:下标可以越界)
功能:在指定下标签前插入一个元素

skills.insert(1,'通天禄')
print(skills)  #['气体源流', '通天禄', '拘灵遣将']

"""插入的下标可以越界"""
skills.insert(10,'通天禄')   #插到最后
print(skills)   #['气体源流', '通天禄', '拘灵遣将', '通天禄']

skills.insert(0,'通天禄')   #插到最前面
print(skills)   #['通天禄', '气体源流', '通天禄', '拘灵遣将', '通天禄']

3. +

列表1+列表2
功能:将列表2中的元素和列表1中的元素合并,并组成一个新的列表

new_skills=skills+['丰厚气门','阿威十八式']
print(new_skills)    #['通天禄', '气体源流', '通天禄', '拘灵遣将', '通天禄', '丰厚气门', '阿威十八式']

练习:从控制台输入10个学生的成绩,然后保存在一个列表中

scores=[]
for _ in range(10):
     score=float(input('请输入成绩:'))
     scores.append(score)
print(scores)

4.删除列表元素(3种)

注意:不管是添加元素还是删除元素,都会重新分配下标
del和remove是删除,而pop是移动到其他地方了,可以单独在保存起来

1.del 语句

del可以删除任何数据
del 列表[下标]:删除列表中指定下标的元素(注意:下标不可以越界)

films=['肖生克的救赎','阿甘正传','赌圣','摔跤吧爸爸','我不是药神','逃学威龙','英雄本色','赌圣']
del films[1]
print(films)  
 #['肖生克的救赎','赌圣', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色', '赌圣']

2.remove方法

列表.remove(元素):删除列表中指定的元素

注意:若列表中有多个同一元素,就删除从左往右数的第一个该元素
注意:如果要删除的元素不再列表中,会报错

films.remove('赌圣')
print(films)   
 #['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色', '赌圣']

3.pop方法

列表.pop():将列表中的最后一个元素取出来
列表.pop(下标):将列表中指定下标的元素取出来 (
注意:下标不可以越界8)*

film=films.pop()
print(films,film)
#['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色']
# ['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色'] 赌圣

film=films.pop(1)
print(films,film)
# ['肖生克的救赎', '摔跤吧爸爸', '我不是药神', '逃学威龙', '英雄本色'] 赌圣
# ['肖生克的救赎', '我不是药神', '逃学威龙', '英雄本色'] 摔跤吧爸爸

练习:#scores = [23, 45, 45, 78,32,90, 89,1],删除所有小于60分的成绩

scores = [23, 43, 45, 78, 32, 90, 89, 10, 9, 1]

# [23, 43, 45, 78, 32, 90, 89, 10, 9, 1]  23  1
# [43, 45, 78, 32, 90, 89, 10, 9, 1] 45 2
# [43,78, 32, 90, 89, 10, 9, 1]  32 3
# [43,78,90, 89, 10, 9, 1] 89 4
# [43,78,90, 89, 10, 9, 1] 10 5
# [43,78,90, 89, 9, 1]  1 6
# [43,78,90, 89, 9]

#new_score = score[:]
#for item in new_score:

for item in scores[:]:
    if item < 60:
        scores.remove(item)    
print(scores)

5.修改元素(1种)

列表名[下标]=新的值
通过下标获取运算,然后赋值,(下标不可以越界)

names=['金秀贤','张家辉','刘德华','迪丽热巴']
names[3]='易烊千玺'
print(names)   #['金秀贤', '张家辉', '刘德华', '易烊千玺']

6.列表的其他操作

(1)len(列表):获取列表的长度(元素的个数)
(2)列表1+列表2:让列表1和列表2的元素组合在一起后产生一个新的列表
(3)列表*数字:让列表中的元素重复N次,然后 产生一个新的列表
(4)in 和 not in操作
元素 in 列表:判断指定的元素是否在指定的列表中—>值是布尔值(True,False
元素 not in列表:判断指定元素是否不在指定的列表中—>值是布尔值(True,False)

print(len([1,2,3,4]))          #4
print(len(names))           #4

new_names=names+['周杰伦','王力宏']
print(new_names)        #['金秀贤', '张家辉', '刘德华', '易烊千玺', '周杰伦', '王力宏']

print([1,2]*2)            #[1, 2, 1, 2]

result='王俊凯' not in names
print(result)         #True

7.获取列表中的最大最小元素

max(列表)
min(列表)

print(max([1,2,3,0,122]))   #122
print(min(['a','b','dss']))   #a

例:获取一个数字列表中的最大值

numbers=[1,2,24,53,445,0]
# print(max([1,2,24,53,445,0]))   #445
max1=numbers[0]
for item in numbers:
    if item>max1:
        max1=item
print(max1)  #0

8.获取列表中出现的次数

count:获取元素在列表中出现的次数

numbers=[-1,2,24,53,445,0]
print(numbers.count(-1))   #1

9.extend

列表.extend(序列):将列表中的每个元素,添加到列表中

names.extend(['王祖贤'])
print(names)   #['金秀贤', '张家辉', '刘德华', '易烊千玺', '王祖贤']

10.index

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

print(names.index('张家辉'))    #1

11.reverse()

列表.reverse():反向列表中的元素(直接操作原来列表,不会产生新的列表)

numbers=[1,2,3,4]
new_numbers=numbers.reverse()
print([numbers,new_numbers])   #[[4, 3, 2, 1], None]

12.sort

列表.sort():对列表进行排序 (升序排)

numbers=[1,23,42,31,65,0,48]
numbers.sort()   #(升序)
print(numbers)   #[0, 1, 23, 31, 42, 48, 65]

numbers.sort(reversed=True)
print(numbers)   #(降序)

13.clear

列表.clear(): 清空列表中的元素

numbers.clear()
# numbers = []  # 效果同上
print(numbers)

14.copy

7.列表.copy(): 将列表中的元素全部拷贝一份创建一个新的列表

names = ['张三', '李四']
# new_names1 = names.copy()
new_names1 = names[:]
print(new_names1)

注意:通过一个列表变量给另一个列表变量赋值的时候,赋的是地址;两个列表对元素进行操作的时候会相互影响。 想要避免这个问题就使用copy或者切片

    原文作者:文化银儿
    原文地址: https://www.jianshu.com/p/304c6b3fd285
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞