python——列表

1、列表
  • 序列是Python中最基本的数据结构。
  • 列表是最常用的Python数据类型。
  • 列表的数据项不需要具有相同的类型
  • 序列都可以进行的操作包括索引,切片,加,乘,检查成员等。
  • 序列中的每个元素都分配一个索引,第一个索引是0,第二个索引是1,依此类推。
2、列表的创建

创建一个列表,只要使用逗号作为分隔符号,将不同的数据项隔开并使用方括号括起来
列表里面也可以嵌套列表
list1 = [1,2,4,34,56,45] # 值包含数字的列表
list2 = [1,1.2,'westos',True,list1] #包含整形,浮点形,字符形,bool形,以及列表类型在同一个列表中

>>> list1 = [1,2,4,34,56,45]
>>> list2 = [1,1.2,'westos',True,list1] 
>>> list1
[1, 2, 4, 34, 56, 45]
>>> list2
[1, 1.2, 'westos', True, [1, 2, 4, 34, 56, 45]]
>>> 
3、列表的特性
1 索引

正向索引

>>> name = ['lala','toto','haha','dodo']
>>> name[0]   #从左到右索引为0的元素
'lala'
>>> name[3]  #从左到右索引为3的元素
'dodo'

反向索引

>>> name = ['lala','toto','haha','dodo']
>>> name[-1]  # 从右到左第一个元素
'dodo'
>>> name[-3] # 从右到左第三个元素
'toto'
2 切片
>>> name = ['lala','toto','haha','dodo']   #定义列表
>>> name[:]   # 查看所有元素
['lala', 'toto', 'haha', 'dodo']
>>> name[::-1]   # 列表元素序列反转
['dodo', 'haha', 'toto', 'lala']
>>> name[1:]   #查看除去第一个元素之外的所有元素
['toto', 'haha', 'dodo']
>>> name[:2]  #查看前两个元素
['lala', 'toto']
>>> name[1:3]  #查看除去第一个到第三个为止的元素
['toto', 'haha']
3 连接

将两个列表合并成一个列表 :格式 list1 + list2

>>> name = ['lala','toto','haha','dodo']   #第一个列表
>>> name1 = ['qoqo','wowo']   #第二个列表
>>> name + name1    #合并列表
['lala', 'toto', 'haha', 'dodo', 'qoqo', 'wowo']  #生成一个新的列表
4 重复

生成一个新的列表将源列表重复n次:格式 list * n

>>> name1 = ['qoqo','wowo']  # 定义列表
>>> name1 *3  # 重复三次
['qoqo', 'wowo', 'qoqo', 'wowo', 'qoqo', 'wowo']   #生成的新列表
5 成员操作符

in #判断元素是否属于该列表 属于为真 不属于为假
not in #判断元素是否不属于该列表 属于为真 不属于为假

>>> name = ['lala','toto','haha','dodo']   #定义列表
>>> 'lala' in name   #判断lala 是否是列表中的元素
True   
>>> 'lala' not in name    # 判断lala是否不是列表中的元素
False
>>> 'tete' not in name
True
>>> 'tete'  in name
False

练习:

1 假定有下面这样的列表:
names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
输出结果为:‘I have fentiao, fendai, fensi and apple.’

names = ['fentiao', 'fendai', 'fensi', 'apple']
print('I have ' + ','.join(names[:-1]) +'  and  ' + names[-1] )

2 题目:输入某年某月某日(yyyy-MM-dd),判断这一天是这一年的第几天?

date=input('请输入日期: ')
date1=date.split('-')
year=int(date1[0])
mon=int(date1[1])
day=int(date1[2])
k=0
list1=[0,31,28,31,30,31,30,31,31,30,31,30,31]
list2=[0,31,29,31,30,31,30,31,31,30,31,30,31]
if (year%400 == 0 or (year%4 == 0 and year%100 != 0)) :
    for i in list2[:mon] :
        k+=i
    print('第%d 天' %(k+day))
else :
    for i in list1[:mon] :
        k+=i
    print('第%d 天' %(k+day))
6 列表元素的增加

**1 **append(元素)追加一个元素到列表,默认添加到末尾

>>> name = ['lala','toto','haha','dodo']  #定义列表
>>> name.append('tete')  #追加一个元素到列表
>>> name
['lala', 'toto', 'haha', 'dodo', 'tete']  # 显示追加之后的列表

2 extend() 追加多个元素到列表中

>>> name1 = ['qoqo','wowo']   #定义列表
>>> name1.extend(['lala'])  # 追加一个元素
>>> name1.extend(['lele','tete'])  #追加两个元素
>>> name1
['qoqo', 'wowo', 'lala', 'lele', 'tete']

3 insert() 在指定索引处插入元素

>>> s = ['shanxi','henan','tianjin']   # 定义列表
>>> s.insert(1,'hebei')  # 在索引1 处插入元素 hebei
>>> s
['shanxi', 'hebei', 'henan', 'tianjin']  # 成功
>>> s.insert(0,'beijing')  # 在索引0处 插入元素beijing
>>> s
['beijing', 'shanxi', 'hebei', 'henan', 'tianjin']  # 成功
7 列表元素的删除

1 pop()#默认删除列表的最后一个元素,可以在括号中指定要删除的元素的索引。
注意:使用pop()删除的元素可以由另外一个变量进行接收

>>> s
['beijing', 'shanxi', 'hebei', 'henan', 'tianjin']   # 列表中的所有元素
>>> s.pop()  # 默认删除列表最后一个元素
'tianjin'
>>> s
['beijing', 'shanxi', 'hebei', 'henan']   # 删除之后的列表
>>> s.pop(0)  # 指定索引删除特定的元素
'beijing'
>>> s
['shanxi', 'hebei', 'henan']
>>> a = s.pop()  # 将删除的元素由变量a接受
>>> a  # a的值为刚刚被删除的元素
'henan'
>>> 

2 remove():删除列表元素,通过指定元素内容来对元素进行删除,并且被删除的元素不能被变量接收

>>> name
['lala', 'toto', 'haha', 'dodo', 'tete']
>>> name.remove('lala')   # 删除lala
>>> name
['toto', 'haha', 'dodo', 'tete']
>>> a=name.remove('toto')  # 想将删除的toto让变量a 接收
>>> a  # 并没有接收成功

3 del 变量 : 直接从内容中删除

>>> name1
['qoqo', 'wowo', 'lala', 'lele', 'tete']
>>> del name1[0]  # 直接从内存中删除第一个元素
>>> name1
['wowo', 'lala', 'lele', 'tete']
8 列表元素的查看

1 count() 查看元素在列表中出现的次数

>>> s = ['haha','lele','toto','toto','haha','toto']   # 定义列表
>>> s.count('toto')  # 查看toto在该列表中出现的次数
3
>>> s.count('lele') # 查看lele在该列表中出现的次数
1
>>> s.count('haha')   # 查看haha在该列表中出现的次数
2
>>> s.count('lala')    # 查看lala在该列表中出现的次数
0

2 index(元素,start,stop)) :查看指定元素的索引值,并返回最小索引,也可以指定在一定的索引范围内搜索指定的元素,返回最小索引值。

>>> s
['haha', 'lele', 'toto', 'toto', 'haha', 'toto']  # 定义列表
>>> s.index('toto')  # 不指定的话在全列表中搜索toto 并返回最小索引
2
>>> s.index('toto',3,4)   # 在指定的索引范围内 搜索toto,并返回最小索引
3
>>> s.index('toto',3,5)  # 在指定的索引范围内 搜索toto,并返回最小索引
3
9 列表元素的排序

默认是按照Ascii码进行排序的
sort() #正序
sort(reverse=True) #倒序
sort(key=str.upper) # 忽略大小写

>>> s  = ['a','f','A','H']   # 定义字符串
>>> s.sort()  # 按照ascii 码进行排序
>>> s
['A', 'H', 'a', 'f']   # 排序结果
>>> s.sort(reverse=True)  # 倒序
>>> s
['f', 'a', 'H', 'A']   # 排序结果
>>> s.sort(key=str.upper)  # 忽略大小写进行排序
>>> s
['a', 'A', 'f', 'H']  #排序结果
>>> 
10 随即打乱列表中元素的顺序

import random # 安装模块
random.shuffle(列表) # 打乱列表中元素的顺序

>>> import random   # 加载模块
>>> a = list(range(10))  # 生成列表
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  # 列表原来的内容
>>> random.shuffle(a)   # 打乱列表元素顺序
>>> a
[2, 0, 7, 3, 6, 4, 1, 9, 5, 8]   # 打乱之后的列表
>>> b = ['c','d','e','f','g']     # 列表原来的内容
>>> random.shuffle(b) 
>>> b
['c', 'g', 'f', 'e', 'd']  # 打乱之后的列表

11 列表元素的修改
通过索引值,重新赋值

>>> s = [1,4,7,9]
>>> s[0]=2
>>> s
[2, 4, 7, 9]

通过切片赋值:截取一部分元素,然后让一个新的列表替代被截取的部分:

>>> s
[2, 4, 7, 9]
>>> s[:2]=[5,8,0]
>>> s
[5, 8, 0, 7, 9]
>>> 

练习:

题目:输入三个整数x,y,z,请把这三个数由小到大输出:

num = input('请按照格式X,Y,Z 依次输入数字  :  ')
num1 = num.split(',')
result = []
for i in num1 :
    result.append(int(i))
result.sort()
for k in result:
    print('%d\t' %(k) ,end='')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值