Python的基本数据类型——List

列表(list)是python中重要的数据类型,有点类似其它语言的数组,python中的列表可以是任意对象的集合

怎么定义一个列表

可以在[ ]中使用逗号隔开对象来定义列表

a=['Hello','world']
print(type(a))
# 输出 list

在python中列表很灵活,具有以下特点

  • 可以包含任意对象
a=['hello',1,2,True,[0,'',1.234]]
print(a)

# 输出 
['hello', 1, 2, True, [0, '', 1.234]]
  • 可以无限嵌套
a=[['a','b','c',['d','e',['f',['g',['h']]]]]]
print(type(a))
# 输出 list
  • 列表是有序的
    试想一下[1,2,3]和[3,2,1]相等吗
a=[1,2,3]
b=[3,2,1]
print(a==b)
# 输出 False

print(a is b)
# 输出 False
  • 可以通过索引和切片的方式访问列表中的元素
    列表和string一样可以通过索引和切片的方式里面的元素,在列表中也可以使用负数的方式访问
a=[1,2,3,'Hello world']
print(a[0])
# 输出 1

print(a[-1])
# 输出 Hello world

print(a[-1][:5])
# 输出 Hello

print(a[:2])
# 输出 [1,2]

print(a[3:4])
print(a[-1:])
# 上面的效果一样
# 输出 ['Hello world']

小思考

# 怎么获取 7
a=[1,2,3,[4,5,[6,[7]]]]

.
.
.
print(a[3][2][1][0])
或
print(a[-1][-1][-1][0])

在列表中添加修改元素

列表是可变的,这意味着我们可以对列表里的元素修改、添加、删除

  • 通过索引和切片的方式修改列表
a=[1,2,3,4,5,6]
a[1]=a[1]+1
print(a)
# 输出 [1, 3, 3, 4, 5, 6]

a[-1]=10
print(a)
# 输出 [1, 3, 3, 4, 5, 10]

a[:3]=['a','b','c']
# 输出 ['a', 'b', 'c', 4, 5, 10]
  • 通过append( )、extend( )、+ 、insert( )添加元素
    上诉的4种方法都可以给列表添加元素,但是他们有什么不同呢?我们通过代码来演示一下

使用append 添加元素

a=[1,2,3,4]

a.append(5)
print(a)
# 输出 [1,2,3,4,5]

a.append([6,7,8])
print(a)
# 输出 [1, 2, 3, 4, 5, [6, 7, 8]]

使用extend 添加元素

a=[1,2,3,4]

a.extend(5)
# 输出 [1,2,3,4,5]

a.extend([6,7,8])
# 输出 [1,2,3,4,5,6,7,8]

使用 + 添加元素

a=[1,2,3,4]

a=a+5 
# 这样写会报错 因为一个list不能与int相加

a=a+[5] 或者简写成a+=[5]
print(a)
# 输出 [1,2,3,4,5]

a+=[6,7,8]
print(a)
# 输出 [1, 2, 3, 4, 5, 6, 7, 8]

使用insert 添加元素

a=[1,2,3,4]

a.insert(4,5)
print(a)
# 输出 [1,2,3,4,5]

a.insert(1,10)
print(a)
#  输出 [1,10,3,4,5]

a.insert(5,[6,7,8])
print(a)
#  输出 [1,10,3,4,5,[6,7,8]]

通过上面的演示我们可以很清楚的看出append( )、insert( )、extend( )、+ 之间的区别,实际使用过程中可以根据自己的实际情况,选择适当的方法

  • 通过del、clear( )、remove( )、pop( ) 删除list中的元素

使用del删除元素

a=[1,2,3,4]

del a[0]
print(a)
# 输出 [2,3,4]

del a[0:2]
print(a)
# 输出 [4]

使用clear( ) 删除元素

a=[1,2,3,4]

a.clear()
print(a)
# 输出 []

使用remove( ) 删除元素

a=['a','b','c','d']

a.remove('d')
# 输出 ['a', 'b', 'c']

使用pop( ) 删除元素

a=['a','b','c','d']

a.pop()
# 返回 'd'
# 输出 ['a', 'b', 'c']

a.pop(2) 或 a.pop(-1)
# 返回 'c'
# 输出 ['a', 'b']

通过上面的案例我们可以总结出以下几点

  • del 可以通过索引和切片删除列表中的元素
  • clear 可以清空列表
  • remove 可以删除指定列表中指定的元素
  • pop 也可以通过索引删除列表中的元素,而且会返回被删除的元素

列表中常用的方法

index( ) 返回元素的索引

a=['a,'b','c']
a.index('b')
print(a)
# 输出 1

count( ) 统计列表中的指定元素数量

a=['a','b','c']
a.extend('a')
print(a.count('a'))
#  输出 2

sort( ) 给列表中的元素排序

a=[3,4,2,5,6,22,54,78,1,0]
print(a.sort())
# 输出  [0, 1, 2, 3, 4, 5, 6, 22, 54, 78]

# 降序
print(a.sort(reverse=True))
# 输出 [78, 54, 22, 6, 5, 4, 3, 2, 1, 0]

sort( )不返回任何值,而 sorted( )返回可迭代列表。

a=[3,4,2,5,6,22,54,78,1,0]

sorted(a)
# 返回 [0, 1, 2, 3, 4, 5, 6, 22, 54, 78]

sorted(a, reverse=True)
# 返回 [78, 54, 22, 6, 5, 4, 3, 2, 1, 0]

print(a)
# 输出 [3, 4, 2, 5, 6, 22, 54, 78, 1, 0]

reverse( ) 给列表中的元素反向排序

a=['d', 3, 5, 1, 'a']
a.reverse()

print(a)
# 输出 ['a', 1, 5, 3, 'd']

更多内置函数

方法 描述
all( ) 判断列表中的所有元素是否全部是true
any( ) 判断列表中的任意元素是否包含true
len( ) 返回列表的长度
max( ) 返回列表元素中最大值
min( ) 返回列表元素中最小值
sum( ) 返回列表元素的总和

怎么判断一个元素是否存在于列表中

  • 第一种方法遍历
a=[1,2,3,4,5]
for x in a:
    if x==3
       print(True)

  • 通过in或者not in实现
a=[1,2,3]
print(1 in a)
# 输出 True

print(5 not in a)
# 输出 True

字符串和列表之间的相互转化

字符串转列表

a='1,2,3,4,5'
b=a.split(',')

print(a)
# 输出 ['1', '2', '3', '4', '5']

a='A|B|C|D|E'
b=a.split('|')

print(b)
# 输出 ['A','B','C','D','E']

list转字符串

a=['1', '2', '3', '4', '5']
b=a.join(',')

print(b)
#  输出 '1,2,3,4,5'

a=['A','B','C','D','E']
b=a.join('|')

print(b)
#  输出 'A|B|C|D|E'

通过上面的这些操作我们可以看出python中的列表很灵活也很强大,官方也为列表提供了很多内置方法,大家也不需要死记硬背,先大致有个了解,用到的时候查查手册,多敲敲代码自然就记住了

总结:本篇文章主要分享了python中列表的创建方法以及列表的一些基本操作,重点需要掌握列表的基本特性和一些内置方法

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

推荐阅读更多精彩内容