教小朋友学 Python -- 列表与元组

背景

前两天,我们一起学习了 Python 的变量、运算符与数据类型 以及程序设计中最常用的 分支语句和循环语句

今天,我们一起来学习 Python 中最常用的一种结构:列表,以及跟它相近的另外一种结构:元组。


代码实现

<b>1. 列表</b>

  • 列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象。

<u>创建列表</u>

  • 创建一个普通列表
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week)  # ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

number = [2, 3, 4, 5, 6, 7]
print(number)  # [2, 3, 4, 5, 6, 7]
  • 创建一个混合列表
mix = [1, 'lsgo', 3.14, [1, 2, 3]]
print(mix)  # [1, 'lsgo', 3.14, [1, 2, 3]]
  • 创建一个空列表
empty = []
print(empty)  # []

<u>向列表添加元素</u>

  • append(obj) 方法:在列表末尾添加新的对象
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.append('Thursday')
print(week)  # ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday']
print(len(week))  # 6
  • extend(seq)方法:在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.extend(['Thursday', 'Sunday'])
print(week)  # ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday', 'Sunday']
  • insert(index, obj)方法:
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.insert(0, 'Sunday')
print(week)  # ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

<u>从列表中获取元素</u>

  • 跟数组一样,我们可以通过元素的索引值,从列表获取单个元素,注意,列表索引值是从0开始的。
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[0])  # Monday

<u>从列表中删除元素</u>

  • remove(obj)方法:移除列表中某个值的第一个匹配项
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.remove('Monday')
print(week)  # ['Tuesday', 'Wednesday', 'Thursday', 'Friday']
  • del var1[, var2 ……]语句:删除单个或多个对象
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
del week[0], week[1]
print(week)  # ['Tuesday', 'Thursday', 'Friday']
  • pop([index=-1])方法:移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
day = week.pop()
print(day)  # Friday
day = week.pop(0)
print(day)  # Monday
day = week.pop(-2)
print(day)  # Wednesday

<u>列表分片</u>

例子1:

week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[1:3])  # ['Tuesday', 'Wednesday']
print(week[:3])  # ['Monday', 'Tuesday', 'Wednesday']
print(week[3:])  # ['Thursday', 'Friday']
print(week[:])  # week的拷贝 ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

例子2:

list1 = [123, 456, 789, 213]
list2 = list1
list3 = list1[:]
print(list2)  # [123, 456, 789, 213]
print(list3)  # [123, 456, 789, 213]
list1.sort()
print(list2)  # [123, 213, 456, 789] 
print(list3)  # [123, 456, 789, 213]

<u>列表的常用操作符</u>

  • 比较操作符
  • 逻辑操作符
  • 连接操作符 +
  • 重复操作符 *
  • 成员关系操作符 innot in
list1 = [123, 456]
list2 = [234, 123]
print(list1 > list2)  # False

list3 = [123, 456]
print((list1 < list2) and (list1 == list3))  # True

list4 = list1 + list2  # extend()
print(list4)  # [123, 456, 234, 123]

list5 = list3 * 3
print(list5)  # [123, 456, 123, 456, 123, 456]

list3 *= 3
print(list3)  # [123, 456, 123, 456, 123, 456]

print(123 in list3)  # True
print(456 not in list3)  # False

<u>列表的其它方法</u>

  • count(obj)方法:统计某个元素在列表中出现的次数
list1 = [123, 456] * 3
print(list1)  # [123, 456, 123, 456, 123, 456]
num = list1.count(123)
print(num)  # 3
  • index(obj[, start[, end]])方法:从列表中找出某个值第一个匹配项的索引位置
list1 = [123, 456] * 5
print(list1.index(123))  # 0
print(list1.index(123, 1))  # 2
print(list1.index(123, 3, 7))  # 4
  • reverse()方法:反向列表中元素
list1 = [123, 456, 789]
list1.reverse()
print(list1)  # [789, 456, 123]
  • sort(key=None, reverse=False)方法:对原列表进行排序
list1 = [123, 456, 789, 213]
list1.sort()
print(list1)  # [123, 213, 456, 789]

list1.sort(reverse=True)
print(list1)  # [789, 456, 213, 123]

<b>2. 元组</b>

<u>创建和访问一个元组</u>

  • Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。
  • 元组使用小括号,列表使用方括号。
  • 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8)
print(tuple1[1])  # 2
print(tuple1[5:])  # (6, 7, 8)
print(tuple1[:5])  # (1, 2, 3, 4, 5)
tuple2 = tuple1[:]
print(tuple2)  # (1, 2, 3, 4, 5, 6, 7, 8)
  • 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

例子1:

temp = (1)
print(type(temp))  # <class 'int'>
temp = 2, 3, 4, 5
print(type(temp))  # <class 'tuple'>
temp = []
print(type(temp))  # <class 'list'>
temp = ()
print(type(temp))  # <class 'tuple'>
temp = (1,)
print(type(temp))  # <class 'tuple'>

例子2:

print(8 * (8))  # 64
print(8 * (8,))  # (8, 8, 8, 8, 8, 8, 8, 8)

<u>更新和删除一个元组</u>

例子1:

week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
week = week[:2] + ('Wednesday',) + week[2:]
print(week)  # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')

例子2:

t1 = (1, 2, 3, [4, 5, 6])
print(t1)  # (1, 2, 3, [4, 5, 6])

t1[3][0] = 9
print(t1)  # (1, 2, 3, [9, 5, 6])

<u>元组相关的操作符</u>

  • 比较操作符
  • 逻辑操作符
  • 连接操作符 +
  • 重复操作符 *
  • 成员关系操作符 innot in
t1 = (2, 3, 4, 5)
t2 = ('老马的程序人生', '小马的程序人生')
t3 = t1 + t2
print(t3)  # (2, 3, 4, 5, '老马的程序人生', '小马的程序人生')

总结

到此为止,列表和元组的内容就介绍完了。今天就到这里呀!大家加油,See You!


相关图文

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

推荐阅读更多精彩内容