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'] # 打乱之后的列表
练习:
题目:输入三个整数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='')
标签:name,python,toto,元素,lala,列表,haha 来源: https://blog.csdn.net/shang_feng_wei/article/details/90550435