python——列表

列表就像一个数组,但是里面放的元素类型可以有很多种

menber=[1,'爱我中华','love',['这里还可以放','一个']]

向列表里面添加

append()

member=['小明',"喜欢","唱"]
member.append('跳')
for each in member:
    print(each,end=' ')

输出:小明 喜欢 唱 跳

member=['小明',"喜欢","唱"]
member.append('跳','rap')
for each in member:
    print(each,end=' ')
image.png

这里报错说append()只能放一个而这里却给了两个,所以要报错
append()里面只能放一个参数
如果我就想放两个及以上呢?那就需要extend()了

extend()

member=['小明',"喜欢","唱"]
member.extend('跳','rap')
for each in member:
    print(each,end=' ')

输出:
image.png

其实这样的写法是不对的,extend的意思是扩展,这里应该是用一个列表去扩展另一个列表

member=['小明',"喜欢","唱"]
member.extend(['跳','rap'])
for each in member:
    print(each,end=' ')

输出:小明 喜欢 唱 跳 rap

列表长度

len()

语法:
len(列表名)

member=['小明',"喜欢","唱"]
print(len(member))

输出:3

在指定位置插入元素

insert(指定位置,插入元素)

member=['小明',"喜欢","唱"]
member.insert(0,'这个')
for each in member:
    print(each,end=' ')

输出:这个 小明 喜欢 唱
列表索引值从0开始

交换列表元素

member=['小明',"喜欢","唱","跳"]
temp=member[2]
member[2]=member[3]
member[3]=temp
for i in member:
    print(i,end=" ")

输出:小明 喜欢 跳 唱

从列表里删除元素

remove()

member=['小明',"喜欢","唱","跳"]
member.remove('跳')
for i in member:
    print(i,end=" ")

输出:小明 喜欢 唱

member=['小明',"喜欢","唱","跳"]
member.remove('rap')
for i in member:
    print(i,end=" ")

结果:


image.png

del

member=['小明',"喜欢","唱","跳"]
del member[2]
for i in member:
    print(i,end=" ")

输出:小明 喜欢 跳

pop

python的列表实际上是利用栈这种数据结构存储,所以可以利用pop来删除

member=['小明',"喜欢","唱","跳"]
it=member.pop()
print(it)
for i in member:
    print(i,end=" ")

结果:

小明 喜欢 唱
pop()会返回并删除栈顶元素

member=['小明',"喜欢","唱","跳"]
it=member.pop(1)
print(it)
for i in member:
    print(i,end=" ")

结果:
喜欢
小明 唱 跳
pop还可以指定删除

列表分片

member=['小明',"喜欢","唱","跳",'rap','篮球']
print(member[1:3])
for i in member:
    print(i,end=" ")

输出:
['喜欢', '唱']
小明 喜欢 唱 跳 rap 篮球
这里分片从1开始到2结束,不包括3,这是一个拷贝,不会影响原列表

其他用法:

member=['小明',"喜欢","唱","跳",'rap','篮球']
print(member[:3])
print(member[3:])
print(member[:])

输出:
['小明', '喜欢', '唱']
['跳', 'rap', '篮球']
['小明', '喜欢', '唱', '跳', 'rap', '篮球']

列表的常用操作符

比较操作符

list1=[123]
list2=[456]
print(list1>list2)

输出:False

list1=[123,456]
list2=[456,123]
print(list1>list2)

输出:False
列表只会比较第一个元素,然后返回

逻辑操作符

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

输出:True

连接操作符

list1=[123,456]
list2=[456,123]
list3=[123,456]
list4=list1+list2
for i in list4:
    print(i,end=" ")

输出:123 456 456 123
不可以这样写:

list4=list1+"小明"

这样写会报错,拼接是同样的类型,列表可以和列表拼接,但是不能列表和字符或者数字直接拼接

重复操作符

list1=[123,456]
list1*=3
for i in list1:
print(i,end=" ")
输出:
123 456 123 456 123 456

成员关系操作符

list1=[123,456]
print(123 in list1)
print(789 in list1)
print(789 not in list1)

输出:
True
False
True
如果在列表里面还有一个列表

list2=[123,[111,"哈哈哈"],456]
print(111 in list2)

输出:False
这样只能访问到第一层,第二层没有访问到
如果想要访问到第二层里面的元素怎么办呢?

list2=[123,[111,"哈哈哈"],456]
print("哈哈哈" in list2[1])

输出True
对于list2这样的列表,想要访问到列表里面的列表,可以用二维数组的方式

list2=[123,[111,"哈哈哈"],456]
print(list2[1][1])

输出:哈哈哈

列表类型的内置函数

print(dir(list))
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__','__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__','__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

count

计算元素在列表中出现的次数

list1=[123,456]
list1*=5
print(list1.count(123))

输出:5

index

会返回参数在列表中的位置

list1=[11,21,34,56,65,34,45]
print(list1.index(34))
print(list1.index(34,3,6))

输出:
2
5

reverse

逆转

list1=[11,21,34,56,65,34,45]
list1.reverse()
for i in list1:
    print(i,end=" ")

输出:45 34 65 56 34 21 11

sort

排序

list1=[11,21,34,56,65,34,45]
list1.sort()
for i in list1:
    print(i,end=" ")

输出:11 21 34 34 45 56 65
sort()默认从小到大排序

如果想要从大到小排序

list1=[11,21,34,56,65,34,45]
list1.sort(reverse=True)
for i in list1:
    print(i,end=" ")

输出:65 56 45 34 34 21 11

列表分片拷贝和等于的区别

list1=[6,5,4,3,2,1]
list2=list1[:]
list3=list1

上面的list1,list2,list3内容都是一样的,但是list2和list3的指向是不同的

list1=[6,5,4,3,2,1]
list2=list1[:]
list3=list1
list1.sort()

list1:1 2 3 4 5 6
list2:6 5 4 3 2 1
list3:1 2 3 4 5 6
可以看见,虽然只改了list1,但是list3也发生了改变,而list2没变,这是因为
list2=list1[:]是list2从list1那里拷贝出来的一份新的列表,list1和2是不同的,而list3是直接指向了list1,list1和list3是同一个列表

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

推荐阅读更多精彩内容