5.5 Python列表

来源:互联网 发布:淘宝详情页设计思路 编辑:程序博客网 时间:2024/05/16 03:04
像字符串类型一样,列表类型也是序列式的数据类型,可以通过下标或者切片操作来访问某一个或者某一块连续的元素。然而,相同的方面也就这些,字符串只能由字符组成,而且是不可变的,而列表则是能保留任意数目的Python 对象的灵活的容器。

列表不仅可以包含Python 的标准类型,而且可以用用户定义的对象作为自己的元素。

列表可以包含不同类型的对象,而且要比C 或者Python 自己的数组类型都要灵活,因为数组类型所有的元素只能是一种类型。

列表可以执行pop、empt、sort、reverse 等操作。

列表也可以添加或者减少元素,还可以跟其他的列表结合或者把一个列表分成几个。

可以对单独一个元素或者多个元素执行insert、update或者remove 操作。

元组与列表的主要不同在于元组是不可变的,或者说是只读的,所以那些用于更新列表的操作,比如用切片操作来更新一部分元素的操作,就不能用于元组类型。

创建列表并赋值

列表是由方括号([ ])来定义。如下面例子所示:
  1. list1 = [123, 'abc', 4.56, 7-9j]
  2. list2 = [123, 'abc', 4.56, ['inner', 'list'], 7-9j]
  3. list3 = [None, 'something to see here']
  4. list4 = []
  5. print(list1)
  6. print(list2)
  7. print(list3)
  8. print(list4)
  9. print(list('foo'))
输出:
[123, 'abc', 4.56, (7-9j)]
[123, 'abc', 4.56, ['inner', 'list'], (7-9j)]
[None, 'something to see here']
[]
['f', 'o', 'o']

访问列表中的值

列表的切片操作就像字符串中一样,切片操作符([ ])和索引值或索引值范围一起使用。如下所示:
  1. list1 = [123, 'abc', 4.56, ['inner', 'list'], 7-9j]
  2. print(list1[0])
  3. print(list1[1:4])
  4. print(list1[:3])
  5. print(list1[3][1])
输出:
123
['abc', 4.56, ['inner', 'list']]
[123, 'abc', 4.56]
list

更新列表

你可以通过在等号的左边指定一个索引或者索引范围的方式来更新一个或几个元素,你也可以用append()方法来追加元素到列表中去。如下所示:
  1. list1 = [123, 'abc', 4.56, ['inner', 'list'], 7-9j]
  2. list2 = [None, 'something to see here']
  3. list3 = []
  4. print(list1[2])
  5. list1[2] = 'float replacer'
  6. list2.append("hi, i'm new here")
  7. print(list2)
  8. list3.append('not empty anymore')
  9. print(list3)
输出:
4.56
float replacer
[None, 'something to see here', "hi, i'm new here"]
['not empty anymore']

删除列表中的元素或者列表(本身)

要删除列表中的元素,如果你确切的知道要删除元素的素引可以用del 语句,否则可以用remove()方法。如下所示:
  1. list1 = [123, 'abc', 'float replacer', ['inner', 'list'], (7-9j)]
  2. del list1[1]
  3. print(list1)
  4. list1.remove(123)
  5. print(list1)
输出:
[123, 'float replacer', ['inner', 'list'], (7-9j)]
['float replacer', ['inner', 'list'], (7-9j)]

你还可以通过pop()方法来删除并从列表中返回一个特定对象。

一般来说,程序员不需要去删除一个列表对象。列表对象出了作用域(比如程序结束,函数调用完成等等)后它会自动被析构,但是如果你想明确的删除一整个列表,你可以用del 语句:
  1. del list1
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 如果没有地球人类会怎么办 小锅盖被屏蔽了怎么办 美的冰箱故障通讯不合格怎么办 美的冰箱通讯不合格怎么办 文明6金币降到0怎么办 紫癜肾炎长期尿潜血怎么办 肾移植后血压高怎么办 尿道长了个肿瘤怎么办 吃了有病的鹅怎么办 狗狗得了乳腺瘤怎么办 孕28周还是臀位怎么办 怀孕五个月胎位不正怎么办 33周了胎位不正怎么办 足月胎儿不足5斤怎么办 绒癌观察期怀孕怎么办 宝宝囱门闭合晚怎么办 慢性硬脑膜下血肿复发怎么办 佝偻病导致囟门晚闭怎么办 儿童液体补多了怎么办 脑脊液鼻漏3年了怎么办 结石掉到膀胱里怎么办 肾结石引起的腰疼怎么办 肾结石小但很疼怎么办 狗狗得了尿结石怎么办 生理期第四天必须游泳怎么办 碎石后吐的厉害怎么办 白细胞高红细胞高血尿怎么办? 早期肾癌术后复发该怎么办 肾结石因运动引起尿血怎么办 宝宝大便镜检阳性潜血怎么办 尿不尽刺痛带血怎么办 狗狗拉肚子拉血怎么办 肾血肿怎么办才吸收快 体检尿蛋白高3怎么办 肾炎会引起脸肿怎么办 12小孩尿蛋白3是怎么办 肝癌介入手术后肝功能不好怎么办 屁多且臭便秘怎么办 肝癌术1年后复发怎么办 怀孕便秘怎么办或大便太干拉不出 肠鸣便秘怎么办多尿