列表

1.1 列表的介绍

列表是python的基本数据类型之一,其他编程语言也有类似的数据类型,比如JS中的数组,java中的数组等等,它是以[]括起来,每个元素用逗号隔开,而且可以存放各种数据类型,比如以下示例:

lst = [1,'哈哈','abc',[1,8,0,"百度"],("我","叫","元组"),{"我叫":"dict字典"},{"我叫集合","集合"}]

列表相比于字符串,不仅可以存放不同的数据类型,而且可以存放大量的数据,32位python可以存放536870912个元素,64位可以存放1152921504606846975个元素,而且列表是有序的(按照你保存的顺序),有索引,可以切片,方便取值。

1.2 列表的索引和切片

lst = ["王力宏","周渝民","黄渤","黄磊","刘涛"]print(lst[0])  # 获取第一个元素,即结果为:王力宏print(lst[1])print(lst[2])lst[3] = "刘宪华" # 注意:列表是可以发生改变的,这点和字符串有区别print(lst)  # 结果为:['王力宏', '周渝民', '黄渤', '刘宪华', '刘涛']# 而字符串不能通过索引改变,否则报错,如下代码str = '孙红雷'str[0] = '王'  # 报错提示为 TypeError: 'str' object does not support item assignment

  

注意:列表是可以发生改变的,这点和字符串不一样,字符串不能通过索引去改变值。

  列表也可以切片,同字符串的切片规则一样,切出来的内容是列表类型,具体如下示例:

lst = ["王力宏","周渝民","黄渤","黄磊","刘涛"]print(lst[0:3])   # ['王力宏', '周渝民', '黄渤']print(lst[:2])    # ['王力宏', '周渝民']print(lst[1::2])  # ['周渝民', '黄磊']print(lst[2::-1]) # ['黄渤', '周渝民', '王力宏']print(lst[-1:-5:-2])  # ['刘涛', '黄渤']

列表的增删改查

注意:列表(list)和字符串(str)是不一样的,lst可以发生改变,所以直接就在原来的对象上进行了操作。

2.1 增加

列表的增加操作有:append,insert,extend,具体用法如下示例:

lst = ['王力宏','周渝民','黄渤','黄磊']lst.append('孙红雷')  # 在末尾追加,每次只能增加一个元素print(lst)  # ['王力宏', '周渝民', '黄渤', '黄磊', '孙红雷']lst.insert(1,'李晨')  # 在指定index的位置插入指定元素print(lst)  # ['王力宏', '李晨', '周渝民', '黄渤', '黄磊', '孙红雷']lst.extend(['杨颖','邓超','陈赫'])  # 迭代添加,一次可以增加多个元素print(lst)  # ['王力宏', '李晨', '周渝民', '黄渤', '黄磊', '孙红雷', '杨颖', '邓超', '陈赫']

  注意:数字和bool值是不可以用extend添加的,因为他们不是可迭代对象。

2.2 删除

列表的删除操作有:pop,remove, clear,del,具体用法如下示例:

lst = ['王力宏','周渝民','黄渤','黄磊']print(lst.pop(0))  # 删除索引为0的元素,返回所删除的元素,结果为:王力宏print(lst)  # 列表内容变为['周渝民','黄渤','黄磊']lst.remove('周渝民')  # 删除指定元素,返回值为None , 注意:删除一个不存在的元素会报错print(lst)  # 列表内容变为['黄渤', '黄磊']lst.clear()  # 清空列表print(lst)  # lst变为一个空列表,结果为:[]# 切片删除lst = ['王力宏','周渝民','黄渤','黄磊']del lst[1:3]  # 删除索引为1和2的元素print(lst) # 结果为:['王力宏','黄磊']

  注意:pop没有参数默认删除最后一个元素。remove('元素')删除一个不存在的元素会报错。

2.3 修改

列表可以通过索引和切片来修改

lst1 = ['王者农药','魔兽世界','DNF','逆水寒','反恐精英']lst1[0] = '扫雷'  # 把索引为0的元素改为 '扫雷'print(lst1)  # ['扫雷', '魔兽世界', 'DNF', '逆水寒', '反恐精英']lst1[1::2] = ['qq华夏','qq三国']  # 切片修改时,如果步长不是1,则要注意元素个数print(lst1)  # 结果为:['扫雷', 'qq华夏', 'DNF', 'qq三国', '反恐精英']lst1[1:3] = ['泡泡卡丁车']print(lst1)  # 结果为:['扫雷', '泡泡卡丁车', 'qq三国', '反恐精英']

列表通过切片修改可理解为先删除再迭代添加。

注意:当切片修改时,若步长不是1,则要注意元素个数是否匹配,不匹配会报错。

2.4 查询

列表是一个可迭代对象,所以可以进行for循环,代码如下:

 for el in lst:print(el)

2.5 其他操作

列表的其他操作有:sort,reverse,len,具体用法如下示例:

lst = [1,34,20,6,89,4,66]lst.sort()  # 排序,默认升序print(lst)  # [1, 4, 6, 20, 34, 66, 89]lst.sort(reverse=True)print(lst)  # [89, 66, 34, 20, 6, 4, 1]lst1 = ['张三','李四','李红','赵明','王刚','孙进']lst1.reverse()print(lst1)  # ['孙进', '王刚', '赵明', '李红', '李四', '张三']

 列表的长度可以用len(lst)。 

列表的嵌套

采用降维操作,一层一层的看就好。示例如下:

lst = [1,'太白','wusir',['马虎疼',['可口可乐'],'王健林']]print(lst[2])  # wusirprint(lst[1:3])  # ['太白', 'wusir']print(lst[1][1]) # 白lst[2] = lst[2].capitalize()print(lst)  # [1, '太白', 'Wusir', ['马虎疼', ['可口可乐'], '王健林']]lst[3][0] = lst[3][0].replace('虎','化')print(lst)  # [1, '太白', 'Wusir', ['马化疼', ['可口可乐'], '王健林']]

元组和元组的嵌套

元组:俗称不可变的列表,又被称为只读列表,元组也是python的基本数据类型之一,用小括号()括起来,里面可以放任何数据类型的数据,可以查询,也可以循环,也可以切片,但就是不能改。具体示例如下代码:

tu = ("土豆丝","拍黄瓜","鱼香肉丝","红烧肉","小炒肉")print(tu[0])      # 返回索引为0的元素print(tu[1])print(tu[2:5])  # 切片之后还是元组类型

尝试修改元组则会报错,如下代码:

tu[1] = "锅包肉"    # 报错TypeError: 'tuple' object does not support item assignment

关于不可变,注意:这里元组不可变的意思是子元素不可变,而子元素内部的子元素是可以变的,这取决于子元素是否是可变对象。如下代码示例:

tu = (1,'哈哈',[],'呵呵')# tu[2] = ['hello']  # 报错 TypeError: 'tuple' object does not support item assignmenttu[2].append('hello')print(tu)   # (1, '哈哈', ['hello'], '呵呵')

  

元组中如果只有一个元素,一定要添加一个逗号,否则就不是元组。如:tu = (1,)

空元组用 tu = tuple()表示。

元组也是可迭代对象,所以也可以用for循环遍历元组,代码如下:

for el in tu:print(el)元组也有count(),index(),len()等方法。

range

range可以帮我们获取到一组数据,通过for循环能够获取到这些数据。具体示例如下:

# range()是一个可迭代对象
for i in range(10):   # range(n)   0 -> n-1print(i)for i in range(1,10):  # range(m,n)   m -> n-1print(i)for i in range(1,10,3):  # range(m,n,q)   m -> n-1 每q个取一个print(i)for i in range(100,90,-1):  # 倒着取print(i)#        0      1     2       3        4       5
lst = ['砂锅','馒头','盖浇饭','刀削面','大麻花','大煎饼']
# 获取到列表的索引,拿到索引之后,可以拿到元素
for i in range(len(lst)):print(i)   # i就是lst的索引print(lst[i])

 

转载于:https://www.cnblogs.com/wqzn/p/9396017.html

基本数据类型之“列表元组”相关推荐

  1. python基础数据类型之列表,元组(基础二)

    第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...

  2. python中的可变数据类型有列表和元组_Python中列表的 += 和 .extend() 的异同

    一道Python题 最近有朋友"考"了我一个Python的题:使用+=和.extend()两种方法扩展元组中的列表会发生什么.虽然我对Python中的可变数据类型.不可变数据类型的 ...

  3. python变量 数据类型 列表 元组 字典

    python基础语法2 变量 数据类型与类型转换 列表 添加列表元素 修改元素 删除列表元素 组织列表 创建数值列表 操作列表 元组 元组转列表 字典 创建字典 列表取值 字典删除增加修改 变量 变量 ...

  4. Python基础知识总结—数据类型,列表,元组,集合,字典

    目录 数据类型 列表 元组 集合 字典 数据类型 列表 列表(动态数组) 定义空列表[ ] list()可以将其他序列转为列表 如:str类型 列表和字符串一样接收索引与切片 list[索引:切片:步 ...

  5. python中列表的元素是什么数据类型_python基本数据类型之列表和元组(一)

    python基本数据类型之列表与元组(一) python中list与tuple都是可以遍历类型.不同的是,list是可以修改的,而元组属于不可变类型,不能修改. 列表和元组中的元素可以是任意类型,并且 ...

  6. Python数据类型、列表、元组、字典、集合增删改查(切片)

    Python基础(数据类型) 有问题可以➕QQ:1606269318来交流沟通. 以下全是干货,对刚学Python是挺有帮助的. 1.Numbers(数字): 1)整数(int) 通常被称为是整型或整 ...

  7. python有哪几种基本数据类型_Python最基本的数据类型以及对元组的介绍 Python 中列表和元组有哪些区别...

    python的数据类型有哪些?道不同不相为谋,你讨厌我,我也未必喜欢你.各走各的人岂不是更潇洒何必咄咄逼人费了口舌也讨人嫌.你闲得慌,我可没空陪你. 1. 数字类型 Python数字类型主要包括int ...

  8. Python列表,元组,字典的区别

    Python列表,元组,字典的区别: 1.元组是不可变的, 而列表.字典是可变的.元组是不可变对象,对象一旦生成,它的值将不能更改:列表是可变对象,对象生成后,可以对其元素进行更改.添加.删除.清空. ...

  9. Python学习之路,第二次复习:列表,元组

    说明:以下总结参考博客园@金角大王. 1 列表 定义列表 names = ['Alex',"Tenglan",'Eric'] 通过列表下标访问列表中的元素,从0开始 >> ...

最新文章

  1. 又爱又恨的 Microsoft Edge!
  2. 李迅雷+但斌+趋势的力量+对话PPT
  3. pandas 将自己的文件写入csv
  4. UDP穿越NAT原理
  5. 向spark standalone集群提交任务
  6. 蜘蛛纸牌java注释_自己摸索的纸牌游戏代码,感觉还有很多知识不懂,任重道远啊!...
  7. 关于shared_from_this的转换
  8. 如何过滤某一频率的声音
  9. 618买手机哪家强?苹果官方也来打折促销了
  10. 【Android Studio快捷键】之导入相应包声明(import packages)
  11. Python 数据结构与算法 —— Prim 算法与小顶堆
  12. 51NOD 1623 完美消除 数位DP
  13. 湖南大学计算机学院张柏杨,王树林-湖大信息科学与工程学院
  14. Python的pandas安装超级详细
  15. html5制作旋转正方体,html5—旋转立方体
  16. 关于数据库时区,这么多奥秘你都知道么?
  17. python(12)—— 图形用户界面Tkinter
  18. 医疗对话摘要论文阅读笔记
  19. Unity - Timeline 之About Timeline(关于Timeline)
  20. 电脑系统怎么重装?PE系统安装教程一键系统重装

热门文章

  1. GIT乱码解决方案汇总及GIT用户名和邮箱修改
  2. 文件转码(mp3\mp4\rmvb\avi\pdf\txt等)--Ubuntu小笔记
  3. 前端自定义网页鼠标右键菜单
  4. php提交成功js弹窗,基于JS+HTML实现弹窗提示是否确认提交功能
  5. 【100%通过率】华为OD机试真题 Python 实现【最长的密码】【2022.11 Q4 新题】
  6. GitHub的女装大佬项目迅速蹿红,并引发广大程序员热议!
  7. 前端接收图片流并展示图片
  8. android网速测试app,Android网速测试App(二)
  9. 最短路径算法Dijstra及优化
  10. linux i2c驱动相关结构体