列表

列表的介绍 

  列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.

列表的索引和切片

列表和字符串一样也拥有索引:

lst = ['刘德华','周润发','周杰伦','向华强']
print(lst[]) # 列表中第一个元素
print(lst[]) # 列表中第二个元素
print(lst[]) # 列表中第三个元素 注意:列表是可以进行修改的,这里和字符串不一样 lst[] = '王健林'
print(lst) s = '王思聪'
s[] = '李'
print(s) 结果:
Traceback (most recent call last):
File "D:/python_object/path2/test.py", line , in <module>
s[] = '李'
TypeError: 'str' object does not support item assignment

列表的切片:

lst = ["麻花藤", "王剑林", "马芸", "周鸿医", "向华强"]
print(lst[:]) # ['麻花藤', '王剑林', '马芸']
print(lst[:]) # ['麻花藤', '王剑林', '马芸']
print(lst[::]) # ['王剑林', '周鸿医'] 也有步长
print(lst[::-]) # ['马芸', '王剑林', '麻花藤'] 也可以倒着取
print(lst[-:-:-]) # 倒着带步长

 

列表的增删改查

1. 增

注意  list和str是不一样的. lst可以发生改变. 所以直接就在原来的对象上进行了操作

追加模式

lst = ["麻花藤", "林俊杰", "周润发", "周芷若"]
print(lst)
lst.append("wusir")
print(lst)

 

插入模式

lst = ["麻花藤", "张德忠", "孔德福"]
lst.insert(, "刘德华") # 在1的位置插入刘德华. 原来的元素向后移动一位
print(lst)

迭代添加

# 迭代添加
lst = ["王志文", "张一山", "苦海无涯"]
lst.extend(["麻花藤", "麻花不疼"])
print(lst)

2. 删除

pop 通过下标删除元素(默认删除最后一个)

lst = ["麻花藤", "王剑林林", "李李嘉诚", "王富贵"]
print(lst)
lst.pop() deleted = lst.pop()
print('被删除的',deleted)
print(lst) el = lst.pop() # 删除下标位2的元素
print(el) # 被删除的元素
print(lst)

remove 通过元素删除

lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]
lst.remove('王剑林')
print(lst) 结果:
['麻花藤', '李嘉诚', '王富贵'] lst.remove('哈哈') # 删除不存在的元素
结果:
Traceback (most recent call last):
File "D:/python_object/path2/test.py", line , in <module>
lst.remove('哈哈') # 删除不存在的元素
ValueError: list.remove(x): x not in list

clear  清空

lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]
lst.clear()
print(lst) 结果:
[]

修改

索引切片修改

# 修改
lst = ["太白", "太黑", "五色", "银王", "⽇天"]
lst[] = "太污" # 把1号元素修改成太污 print(lst)
lst[::] = ["麻花藤", "哇靠"] # 切片修改也OK. 如果步长不是1, 要注意. 元素的个 数
print(lst)
lst[:] = ["我是哪个村的村长王富贵"] # 如果切片没有步长或者步长是1. 则不用关心个数
print(lst)

查询  

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

lst = ["麻花藤", "王剑林", "李嘉诚", "王富贵"]

for i in lst:
print(i) 结果:
麻花藤
王剑林
李嘉诚
王富贵

其他操作

反转

li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]

li.reverse()  # 把这个列表进行调转
print(li)

排序  

li = [,,,,,,,,,,,]
li.sort() # 升序 排序
print(li) li.sort(reverse=True) # 降序 排序
print(li)

统计

li = [,,,,,,,,,,,]
num = li.count() # 统计元素3出现的次数,和字符串中功能一样
print(num)

通过元素获取下标

li = [,,,,,,,,,,,]
n = li.index()
print(n)

获取长度

li = [,,,,,,,,,,,]
print(len(li)) 结果:
 

列表的嵌套

注意:采用降维操作,一层一层的看就好

lst = [,'太白','wusir',['麻花疼',['可口可乐'],'王健林']]

# 找到wusir
print(lst[]) # 找到太白和wusir
print(lst[:]) # 找到太白的白字
print(lst[][]) # 将wusir拿到,然后首字母大写 在扔回去 s = lst[]
s = s.capitalize()
lst[] = s
print(lst) # 简写
lst[] = lst[].capitalize()
print(lst) # 把太白换成太黑
lst[] = lst[].replace('白','黑') # 把麻花疼换成麻花不疼
lst[][] = lst[][].replace('疼','不疼')
print(lst) # 在可口可乐后边添加一个雪碧
lst[][].append('雪碧')
print(lst)

元祖

元祖:俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一,用小括号

括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.

tu = ('我','怎么','这么','可爱')

tu1 = tu[]  # 记性下标
print(tu1) for i in tu:
print(i) # 进行for循环 tu2 = tu[:]
print(tu2) # 进行切片 结果:
Traceback (most recent call last):
File "D:/python_object/path2/test.py", line , in <module>
tu[] = '你'
NameError: name 'tu' is not defined

关于不可变, 注意: 这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可以变, 这取决于子元素是否是可变对象.

元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组

tu = ()
print(type(tu)) 结果:
<class 'int'>

元祖嵌套  

tu = ('今天姐姐不在家','姐夫和小姨子在客厅聊天',('姐夫问小姨子税后多少钱','小姨子说和姐夫还提钱'))
tu1 = tu[]
tu2 = tu[]
tu3 = tu[][]
tu4 = tu[][] print(tu1)
print(tu2)
print(tu3)
print(tu4) 结果:
今天姐姐不在家
姐夫和小姨子在客厅聊天
姐夫问小姨子税后多少钱
小姨子说和姐夫还提钱 

python基础学习笔记——列表及元组的更多相关文章

  1. python 基础学习3 列表和元组 、字符串

    作为小白,坚持每日写学习记录,是督促坚持学习的动力, 今天主要是学习 列表和元组,列表是可以修改的,元组是不可变的.列表和元组的索引都是从0开始 列表可以修改, 可以对列表进行赋值,修改移除等各种方法 ...

  2. Python基础学习四 列表、元组、字典、集合

    列表list,用中括号“[ ]”表示 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一 ...

  3. python基础学习笔记——列表技巧

    列表: 循环删除列表中的每⼀个元素 li = [, , , ] for e in li: li.remove(e) print(li) 结果: [, ] 分析原因: for的运⾏过程. 会有⼀个指针来 ...

  4. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  5. python 基础学习笔记(3)--列表与元组

    **本次笔记主要内容为 列表,元组主要的功能和特性** **1.列表**: 学习过c语言的同学应该知道,c语言有数组这一功能,就是将数据类型相同的元素放在一起.由于python的变量没有数据类型,也就 ...

  6. Python基础学习笔记(七)常用元组内置函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxue ...

  7. Python基础学习笔记(六)常用列表操作函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...

  8. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  9. python 基础学习笔记(6)--函数(2)

                                                                                                        ...

随机推荐

  1. 2017年2月28日-----------乱码新手自学.net 之特性与验证

    现在看asp.net MVC5自学已经到了第六章:数据注解与验证. 话得从以前看MVC music store(音乐商店项目)的源码说起, 最初看music store源码完全就是一脸懵逼,整个程序, ...

  2. http://circles.arenaofthemes.com/

    http://pan.baidu.com/share/link?shareid=492277&uk=637823677 http://circles.arenaofthemes.com/ ht ...

  3. ubuntu下irobot串口通讯

    在window下以前就`有一个现成的串口代码.想移植到ubuntu下,发现都不一样了.要重新找个. 折腾了一上午之后,发现自己写这个串口通讯还是有一点难度. 于是,用了github上 Erick Co ...

  4. 一个mybatis错误导致无法启动项目的问题

    今天遇到Mybatis一个问题,导致项目一直起不来,查了很久发现是MapperXML的错,问题表现为: 系统始终起不来,但也不报错,始终卡到如下信息位置: 信息: Initializing Sprin ...

  5. 【虚拟机-网络IP】如何开放 Azure 虚拟机 Ping 功能

    前言 文章<使用 PsPing & PaPing 进行 TCP 端口连通性测试>中提到,ICMP 协议的数据包无法通过 Azure 的防火墙和负载均衡器,所以不能直接使用 Ping ...

  6. 如何处理错误消息Please install the Linux kernel header files

    Please install the Linux kernel "header" files matching the current kernel 当我启动minilkube时遇 ...

  7. NGUI类之间的关系架构

    NGUI Drawcall 1.使用同一个altals的元素尽量放在同一个UIPanel下面,在NGUI中,它消耗的drawcall是以每个Panel为独立计算单位进行计算的. 2.如果一个UIPan ...

  8. 前端面试题总结(三)JavaScript篇

    前端面试题总结(三)JavaScript篇 一.谈谈对this的理解? this是一个关键字. this总是指向函数的直接调用者(而非间接调用者). 如果有new关键字,this指向new出来的那个对 ...

  9. GCD 代码以及GCD思想

    # 欧几里得算法 现在,我们来学习一下欧几里得算法. 欧几里得算法又称辗转相除法,主要用于算求两个正数之间的最大公约数.对于最大公约数这个名称,其英文名称为(Greatest Common Divis ...

  10. Django 的母板及布局(Bootstrap)

    title: Django 的母板及布局(Bootstrap) tags: Django --- Django 的母板及布局(Bootstrap) Django 的母板是作为公共的部分,其他的页面都能 ...