目录
一.列表
1.list
2.列表的创建
3.列表常用操作
1)索引
2)切片
3)增删改查
增
(1) append :
(2)insert:
(3)extend:
删
(1)pop:
(2)remove:
(3)clear:
(4)del:
改
查
4)其它用法
(1) len:计算列表长度
(2)count:查找元素在列表中出现的次数
(3)index:找元素的索引,找不到报错
(4)排序
(5)列表的嵌套
二.元组(tuple)
1.tuple
2.元组的索引、切片
3.元组的常用操作
1) len:
2) count:
3)index:
三. jion():
将可迭代对象中的元素以指定的字符连接生成一个新的字符串
四.range():
一.列表
1.list
- 列表是有序的,有索引值,可切片,方便取值。
- 表达方式 "[]" 括起来,方括号中的元素以逗号隔开,可以存放各种数据类型
2.列表的创建
lst = ["masdhsu",1,"2"]
#空列表
lst = list() #空列表
lst= list('123')
print(lst) #['1', '2', '3']
3.列表常用操作
1)索引
#列表本身可以发生改变,字符串不能
lst = ["masdhsu",1,"2"]
print(lst[2]) #2
print(lst[-1]) #2
2)切片
lst1 = ['alex', [1, 2, 3], 'wusir']
print(lst1[0:3]) # ['alex', [1, 2, 3], 'wusir']
lst2 = ['alex', [1, 2, 3], 'wusir']
print(lst2[:-1]) # ['alex', [1, 2, 3]]
lst3 = ['alex', [1, 2, 3], 'wusir']
print(lst3[::2]) # ['alex', 'wusir']
lst4 = ['alex', [1, 2, 3], 'wusir']
print(lst4[::-1]) #['wusir', [1, 2, 3], 'alex']
3)增删改查
增
(1) append :
在列表末尾添加一个元数 可以是列表,字典,元组,集合,字符串等
lst = [ "akhk","王大拿","fangpi" ]
lst.append("hennice") #列表可以在原来的对象上面直接操作(str不可以)
print(lst) #['akhk', '王大拿', 'fangpi', 'hennice']
(2)insert:
指定位置添加元素 None无返回值
lst = ["akhk", "王大拿", "fangpi"]
lst.insert(1,"jlasfj") # 在1的位置添加jlasfj,原来的元素向后移动一位
print(lst) #["akhk","jlasfj","王大拿","fangpi"]
(3)extend:
迭代添加
lst = ["zhouyuan","lixioaxia","qingsuoo","oppo"]
lst.extend(["daxia","Qdd"])
print(lst) #['zhouyuan', 'lixioaxia', 'qingsuoo', 'oppo', 'daxia', 'Qdd']
删
(1)pop:
pop() 默认删除最后一个元素
# 默认删除最后一个元素
lst1 = ["fanbinbin","dayr","nihsiwo de","erzi"]
lst1.pop()
print(lst1) #['fanbinbin', 'dayr', 'nihsiwo de']
#可以指定位置索引删除
lst2 = ["fanbinbin","dayr","nihsiwo de","erzi"]
list2 = lst.pop(3)
print("被删除的:",list2) #结果为:被删除的: erzi
print(lst2) #['fanbinbin', 'dayr', 'nihsiwo de']
#pop后面()跟的对象是int类型
lst3 = ["fanbinbin","dayr","nihsiwo de","erzi"]
lst3.pop(2)
print(lst3) #['fanbinbin', 'dayr', 'erzi']
(2)remove:
删除指定元素,删除不存在的元素会报错
lst = ["QDD","nidaye","nijuedene","我喜欢你"]
lst.remove("我喜欢你")
print(lst) #["QDD","nidaye","nijuedene"]
(3)clear:
清空列表
lst = ["QDD","nidaye","nijuedene","我喜欢你"]
lst.clear()
print(lst) #[]
(4)del:
lst = ["QDD","nidaye","nijuedene",1]
del lst #删除列表
print(lst) #打印lst会报错,内存中已经没有li这个变量
#按照索引删除该元素
lst1 = ["QDD","nidaye","nijuedene",1]
del lst1[1]
print(lst1) #['taibai', 'wusir', 'egon', '女神']
#切片删除该元素
lst2 = ["QDD","nidaye","nijuedene",1]
del lst2[1:]
print(lst2) # ['QDD']
#切片(步长)删除该元素
lst3 = ["QDD","nidaye","nijuedene",1]
del lst3[::2]
print(lst3) # ['nidaye', 1]
改
#索引改值
lst1 = ["niaf","kjdfhg","jiaobaba","ranhoune","suanl ba"]
lst1[0] = "大"
print(lst1) #["大","kjdfhg","jiaobaba","ranhoune","suanl ba"]
#按照切片改值(迭代着增加)
lst2 = ["niaf","kjdfhg","jiaobaba","ranhoune","suanl ba"]
lst2[0:3] = '松鼠asl'
print(lst2) #['松', '鼠', 'a', 's', 'l', 'ranhoune', 'suanl ba']
#切片修改 如果步长不是1,要注意元素的个数
#不连续切片替换,替换的值的长度必须和切片的值的长度一致,如果不一致,会报ValueError错误
lst3 = ["niaf","kjdfhg","jiaobaba","ranhoune","suanl ba"]
lst3[:4:2] = ["nfiahf","test"]
print(lst3) #['nfiahf', 'kjdfhg', 'test', 'ranhoune', 'suanl ba']
#切片没有步长不用关心个数
lst4 = ["niaf","kjdfhg","jiaobaba","ranhoune","suanl ba"]
lst4[3:4] = ["fanfjas"]
print(lst4) #['niaf', 'kjdfhg', 'jiaobaba', 'fanfjas', 'suanl ba']
查
列表是一个可迭代对象,可以进行for循环
lst = ["worenwei","think","zaina","jiuzheyan"]
for el in lst:
print(el)
4)其它用法
(1) len:计算列表长度
length = ["你","asleep","fangcuo","yake"]
print(len(length)) #4
(2)count:查找元素在列表中出现的次数
lst = ["worenwei","think","zaina","jiuzheyan","worenwei"]
C = lst.count("worenwei")
print(C) #2
(3)index:找元素的索引,找不到报错
lst = ["你","asleep","fangcuo","yake"].index("fangcuo")
print(lst) #2
(4)排序
lst = [1, 45, 6, 2, 56, 8]
lst.sort() # 排序
print(lst) # [1, 2, 6, 8, 45, 56]
lst.reverse() #{ reverse() 顺序翻转 [::-1] }
print(lst) # 是对排序后的列表进行翻转的结果[56, 45, 8, 6, 2, 1]
lst1 = [1, 45, 6, 2, 56, 8]
lst1.sort(reverse=True) # True也可以换成False
print(lst1) # [56, 45, 8, 6, 2, 1]
(5)列表的嵌套
lst = ["Hello","zhouyuan",["wojeudei",["together","test","0"],"huawei"],"Q"]
print(lst[2][1][2]) #0
print(lst[1][5]) #u
lst[2][0] = lst[2][0].capitalize() #锁定位置再将wojeudei首字母大写
print(lst) #['Hello', 'zhouyuan', ['Wojeudei', ['together', 'test', '0'], 'huawei'], 'Q']
lst[2][1][2] = lst[2][1][2].replace("0","1") #把0换成1
print(lst) #['Hello', 'zhouyuan', ['Wojeudei', ['together', 'test', '1'], 'huawei'], 'Q']
lst[2][1].insert(2,"JJ") #指定位置添加元素,0前面加一个元素JJ
print(lst)
#['Hello', 'zhouyuan', ['Wojeudei', ['together', 'test', 'JJ', '1'], 'huawei'], 'Q']
二.元组(tuple)
1.tuple
- 元组:俗称不可变的列表.又被称为只读列表。表示:() 用小括号括起来里面可以放任何数据类型的数据,数据不可更改
- 可以查询.可以循环.可以切片 也有count(),index(),len()等操作
2.元组的索引、切片
tu = (1,)
print(type(tu))
#【元组中如果只有一个元素.一定要添加一个逗号,否则就不是元组。】
#索引
tu = (1,"QDD","Hello",90,"jizuheyang","faj")
print(tu[2]) #Hello
#切片
tu = (1,"QDD","Hello",90,"jizuheyang","faj")
print(tu[1:3]) #('QDD', 'Hello')
print(tu[-1::-3]) #('faj', 'Hello')
- 元组可以通过再构造一个新的元组替换旧的元组,来实现元素的插入和删除。
- 可以把多个元组合并成一个元组,合并后的元组元素顺序保持不变。合并后的元组为一个新的元组,原有的元组保持不变。
#构造新元组
tu = ("af","dd","GF")
au = ("QDD","FD","l","suan")
su = tu[0:3] + au[1:3]
print(su) #('af', 'dd', 'GF', 'FD', 'l')
#元组合并
tu = ("nihf",1,"daxioa","QDD")
d = (1,2,3,4,5)
nu = ("QDD","fda","fangpi")
tump = tu + d + nu
print(tump) #('nihf', 1, 'daxioa', 'QDD', 1, 2, 3, 4, 5, 'QDD', 'fda', 'fangpi')
for el in tu: # for循环遍历元组
print(el) #拿到元组中每一个元素
3.元组的常用操作
1) len:
#计算元组的长度
tu = ("nihf",1,"daxioa","QDD")
print(len(tu)) #4
2) count:
#查找元素在元组中出现的次数
tu = ("nihf",1,"daxioa","QDD",1)
print(tu.count(1)) #2
3)index:
#查找元素的索引,找不到报错
tu = ("nihf",1,"daxioa","QDD")
print(tu.index("daxioa")) #2
4.元组的不可变
- 元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可以变的, 这取决于子元素是否是可变对象.
tu = (1, "哈哈", [], "呵呵")
#tu[2] = ["fdsaf"] # 会报错
tu[2].append("first") # 可以更改没报错
tu[2].append("two")
print(tu) # (1, '哈哈', ['first', 'two'], '呵呵')
三. jion():
将可迭代对象中的元素以指定的字符连接生成一个新的字符串
str = "nihf"
print('_'.join(str)) #n_i_h_f
lst = ["nihf","1", "daxioa", "QDD"]
str2 = "+".join(lst)
print(str2) #nihf+1+daxioa+QDD
四.range():
- 有一个参数:结束位置
- 两个参数: 1. 起始位置, 2.结束位置
- 三个参数: 1. 起始位置, 2. 结束位置. 3.步长
#range可以获取一组数据,通过for循环得到
for num in range(10):
print(num) #从0开始取到(10-1)
for num in range(1,10,2):
print(num)
for num in range(10,1,-2):
print(num) #反着来,和切片一样