列表,元祖,range

列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

# li = [123, '老男孩', True, [1, 2, 3], {'name': 'alex'}, (1, 2, 3)]
# 列表称之为容器型数据类型。
# l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
# 按照索引取值
# print(l1[0])
# print(l1[1], type(l1[1]))
# 按照切片取值,可取步长 顾头不顾尾
# print(l1[:3])
# print(l1[2:])
# print(l1[::2])
增删改查:
增:
li = [1,'a','b',2,3,'a']
# li.insert(0,55) (索引,元素) #按照索引去增加,插入
# print(li) [55, 1, 'a', 'b', 2, 3, 'a']
# li.append('aaa')    #增加到最后,追加       [1,'a','b',2,3,'a','aaa']
# li.append([1,2,3])   #增加到最后,追加      [1,'a','b',2,3,'a','aaa',[1,2,3]]
# print(li)       
# li.extend(['q,a,w']) #迭代的去追加 [1, 'a', 'b', 2, 3, 'a', 'q', ',', 'a', ',', 'w'] # li.extend(['q,a,w','aaa']) [1, 'a', 'b', 2, 3, 'a', 'q,a,w', 'aaa'] # li.extend('a') # li.extend('abc') # li.extend('a,b,c') # print(li) 列表是可迭代对象
字符串转化为列表:
li = []
li.extend('abc')
print(li) ['a', 'b', 'c']
删:

li = [1,'a','b',2,3,'c']
# l1 = li.pop(1)      #按照位置去删除,有返回值
# print(l1)            'a'
# l1 = li.pop() #默认删除最后一位,有返回值
# print(l1) 'c' # li.remove('a') #按照元素去删除,如果有相同元素,只删除第一个 # print(li) [1,'b',2,3,'c'] # li.clear() #清空列表
# print(li) [] 空列表
del:
1,在内存级别删除列表
del l1
print(l1) name 'l1' is not defined
2,按照索引删除
del l1[2]
print(l1) [1, 'a', 2, 3, 'c']
3,切片删除,可加步长
del l1[:-1]
print(l1) ['c']

改:
# li = ["windows", "Ubuntu", "CenOS", "Red Hat"]       
# li[1] = "MacOS" #按照索引修改
# print(li) ['windows', 'MacOS', 'CenOS', 'Red Hat']
# li[0:2] = "MacOS"               #按照切片修改       删除旧的,添加新的(迭代添加)
#
print(li) ['M', 'a', 'c', 'O', 'S', 'CenOS', 'Red Hat']

# li[::1] = ["周杰伦","周润发","麻花藤"]           #切片,可加步长         步长为1,等于列表重新赋值
# print(li) ['周杰伦', '周润发', '麻花藤']
# li[::2] = ["周杰伦","周润发","麻花藤"]           如果步长不是1,元素个数必须要匹配,不然会报错
# print(li) attempt to assign sequence of size 3 to extended slice of size 2
# li[::2] = ["周杰伦","周润发"]          
# print(li) ['周杰伦', 'Ubuntu', '周润发', 'Red Hat']
查:
# 索引、切片、for循环
常用操作:
#len     列表长度或列表里面有多少个元素
# print(len(l1))

#count 某元素在列表里出现的次数
# print(l1.count('taibai'))

#index 通过元素找索引
# print(l1.index('alex'))

# l2 = [1, 3, 5, 9, 7, 6, 2, 4]
#sort 从小到大,正序排序
# l2.sort()
# print(l2) [1, 2, 3, 4, 5, 6, 7, 9]
li = ["1", "5","112","11","111","21"]     # 字符串排序,按照位数排
# li.sort()
# print(li) ['1', '11', '111', '112', '21', '5']

#sort 从大到小,倒序排序
# l2.sort(reverse=True)
# print(l2) [9, 7, 6, 5, 4, 3, 2, 1]

#翻转 reverse
# l2.reverse()
# print(l2) [4, 2, 6, 7, 9, 5, 3, 1]


元组 
# 只读列表,不能增删改 只能查询
# tu = (11, 22, 33, 44, 55)
# 基本操作: 索引,切片,步长,for循环,index,len, count
# print(tu[0])
# print(tu[:3:2])
# for i in tu:
# print(i)
# index len count
# 可以del
del tu 内存级别删除
print(tu) name 'tu' is not defined
# tu = ("哈哈", )        # 如果只有一个元素. 必须加一个逗号
# print(tu,type(tu)) ('哈哈',) <class 'tuple'>
# tu = ("哈哈" )        
# print(tu,type(tu)) ('哈哈') <class 'str'>

range:
range(start,end,step) 顾头不顾尾,可切片,可加步长
for i in range(100)        0到99
for i in range(0,100)        0到99
for i in range(0,100,2)        0到98的偶数

列表的枚举:

enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

复制代码
li = ['alex','银角','女神','egon','太白']
for i in enumerate(li):
    print(i)

执行结果: 元祖类型

(0, 'alex')
(1, '银角')
(2, '女神')
(3, 'egon')
(4, '太白')

for index,name in enumerate(li,1):
    print(index,name)

执行结果: 解构 可以设定索引的起始位置

1 alex
2 银角
3 女神
4 egon
5 太白

for index, name in enumerate(li):  # 起始位置默认是0,可更改
    print(index, name)   

执行结果: 解构

0 alex
1 银角
2 女神
3 egon
4 太白



原文地址:https://www.cnblogs.com/molieren/p/9132806.html