python基本数据类型---列表&元组

引入

在内存中存储的数据可以是不同的数据类型。比如名字可以使用字符串存储,年龄可以使用数字存储,python有6种基本数据类型,用于各种数据的存储,分别是:numbers(数字类型)、string(字符串)、List(列表)、Tuple(元组)、Dictionary(字典).

本文介绍列表类型和元组类型。

列表类型(List)

列表属于可变数据类型,定义空列表有两种方式:

# 使用内置方法list定义一个空列表
list1 = list()

# 使用[]定义
list2 = []

但凡能够被for循环的对象,都可以当做参数传给list()方法转换成列表。

a = 'name'
l = list(a)  # 底层相当于调用for循环,将每个数据存到列表中
print(l)
# 默认是把字典的key转成列表
l = list({'k1':'name','k2':'age'})
print(l)

下面就介绍一些操作列表的方法。

第一,按照索引取值/修改值,列表中的每个元素都有索引,和字符串一样,正向索引从0开始,反向索引从-1开始。

list1 = ['a',1,'b','2']
# 1按索引取值:既可以取值也可以改
print(list1[0])
print(list1[-1])

# 索引存在则修改对应值,索引不存在,则会报错
list1[0] = 'c'
print(list1)

第二,列表支持切片操作,操作方式与字符串一直,列表的切片属于浅拷贝。

list1 = ['a',1,'b','2']
print(list1[::-1])  # 反转列表
# 相当于拷贝操作,浅拷贝

第三,计算列表的长度---len()

list1 = ['a',1,'b','2']
print(len(list1))

第四,成员运算

list1 = ['a',1,'b','2']
print('a' in list1)
print('a' not in list1)

第五,for循环,循环遍历列表中的每个元素

list1 = ['a',1,'b','2']
for i in list1:
    print(i)

第六,列表运算

列表之间可以进行运算,但是列表类型不能其他数据类型进行运算

>>> list1 = [1, 2, 3]
>>> list2 = ['python', 'java']
>>> list1 + list2
[1, 2, 3, 'python', 'java']

>>> list1 * 2
[1, 2, 3, 1, 2, 3]

第七,下面介绍列表的一些常用内置方法,分别对应列表的增删改查和其他一些常用操作,其他不常用的方法希望大家可以自己补充学习一下。

①增

append()向列表中追加值

list1 = ['a',1,'b','2']
list1.append(3)
print(list1)  # ['a', 1, 'b', '2', 3]

extend()将可迭代对象的每一个元素追加到列表中

list1 = ['a',1,'b','2']
list2 = [1,2,3]
# for i in list2:
#     list1.append(i)
# print(list1)

# 实现上述代码操作
list1.extend(list2)
print(list1)

insert()指定位置插入数据

list1 = ['a',1,'b','2']
# insert(插入位置, 插入的值)
list1.insert(1,'egon')
print(list1)

②删

del通用的的删除方法,可以删除切片,没有返回值,只是单纯的删除

list1 = ['a',1,'b','2']
del list1[0]
del list1

pop()根据索引删除,会返回删除的元素,不指定删除元素,默认删除最后一个值

list1 = ['a',1,'b','2']
res = list1.pop(2)  # 
print(res)
print(list1)

remove(),根据元素值删除元素,没有返回值

list1 = ['a',1,'b','2']
res= list1.remove('a')
print(list1)
print(res)  # None

③改

根据索引找到值直接进行赋值修改

list1 = ['a',1,'b','2']
list[0] = 100
pirnt(list1)  # [100,1,'b','2']

reverse()反转列表

list1 = ['a',1,'b','2']
print(list1.reverse())

sort()列表排序

list2 = [1,2,4,6,2,3]
print(list2.sort()) # 数字默认从小到大排
print(list2.sort(reverse=True))  #  从打到小排

# 了解:字符串可以比大小,按照ASCII码表的先后顺序区别字符的大小
    # 比较字符串大小按照对应位置依次比大小
    # 在ASCII中表中越靠后的字符大于前面的

# 了解:列表之间也可以比大小,按照对应位置进行比大小,如果对应位置数据类型不同,会报错
l = [1,'abc','z']
l1 = [10,]
print(l1 > l )

④其他常用内置方法

clear()清空列表

list1 = ['a',1,'b','2']
list1.clear()
print(list1)

count():计算列表中某个元素的个数

list1 = ['a',1,'b','2']
# 某个元素的个数
print(list1.count(1))

index(),按照值找对应的索引

list1 = ['a',1,'b','2']
print(list1.index(1))

⑤用列表实现队列和堆栈

队列:first in,first out(FIFO,先进先出)

l = []
# 入队操作
l.append('first')
l.append('second')
l.append('third')
# 出队操作
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))

堆栈:last in first out(LIFO,后进先出)

# 堆栈  (last in first out LIFO)
l.append('first')
l.append('second')
l.append('third')
# 出队操作
print(l.pop())
print(l.pop())
print(l.pop())

元组(Tuple)

元组也被称为只读列表,只能读取元组中的数据,但是不能修改元组的值,元组属于不可变数据类型。

定义元组有两种方式:

注意:当元组中只有一个元素的时候,也要写, 如果不写的话,就会变成字符串类型,因此也可以说,是元组的标志

# 使用内置方法tuple定义元组
my_tuple = tuple()

# 使用小括号,每个元素用,分割
t = ('a', )
s = ('a')
print(type(t), type(s))  # <class 'tuple'> <class 'str'>

操作元组的方法与列表一致,但是由于元组是不可变数据类型,因此不能对元组进行增加值、修改值、删除值的操作。

文末

如果你觉得我写的不错,就请给个赞赏吧,欢迎关注我的微信公众号:程序媛小庄,获取更多python知识哦~

更多精彩python教程请来B站关注我哦:python零基础入门---大白话版本来了_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容