Python-基本数据类型一(list、tuple)

 

目录

一.列表

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)    #反着来,和切片一样

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值