4.Python的不堪一击到初学乍练(列表,元组)
Python(列表,元组)
一.列表
列表初识
- 列表是python的基础数据类型之一,其他编程语言也有类似的数据类型.
比如JS中的数组, java中的数组等等,它是以[ ]括起来, 每个元素用","隔开并且可以存放各种数据类型. - 列表相比于字符串,不仅可以存放不同的数据类型,并且可以存放大量的数据.
当32位Python可以存放:536870912个元素, 当64位Python可以存放:1152921504606846975个元素,并且列表是按照你保存的顺序进行排序的,有索引并且可以切片,方便取值.
- 列表是python的基础数据类型之一,其他编程语言也有类似的数据类型.
列表索引,切片和操作
1.1 列表的索引
列表与字符串一样也有索引:
# 列表索引的应用
lst = ["asd", "你好", "hell world", 123, "升仙"]
print(lst[0]) # 获取第一个元素
print(lst[1]) # 获取第二个元素
print(lst[2]) # 获取第三个元素
print(lst[3]) # 获取第四个元素
print(lst[4]) # 获取第五个元素
# 列表是可变的与字符串不同这点要注意,在列表的操作中会有说明.
1.2 列表的切片
列表与字符串一样可进行切片操作
lst = ["asd","你好","hell world",123,"升仙"]
print(lst[0:3]) # ["asd","你好","hell world"]
print(lst[:3]) # ["asd","你好","hell world"]
print(lst[1::2]) # ["你好",123] 列表同样有步长
print(lst[2::-1]) # ["hell world","你好","asd"] 步长位置的正负控制着取值的方向
print(lst[-1:-4:-2]) # ["升仙","hell world"]
# 列表和字符串的操作基本类似,因此操作起来并不难举一反三即可.
1.3 列表的操作(增,删,改,查,其他操作)
注意 : list和str不一样, lst可以发生改变.,所以可以直接在原来list对象上进行操作.
1.3.1 列表的增加
# 在列表后新增
lst = ["asd","你好","hell world",123,"升仙"]
print(lst)
lst.append("wusir")
print(lst) # ["asd","你好","hell world",123,"升仙","wusir"]
---------------------------------
# 根据索引位置插入
lst = ["asd","你好","hell world",123,"升仙"]
lst.insert(1,"成仙") # 在索引为1的位置插入刘德华,原来的元素向后移动一位.
print(lst) # ["asd","成仙","你好","hell world",123,"升仙"]
---------------------------------
# 迭代添加
lst = ["asd","你好","hell world",123,"升仙"]
lst2 = ["升仙成功","升仙失败"]
lst.extend(lst2)
print(lst) # ["asd","你好","hell world",123,"升仙","升仙成功","升仙失败"]
print(lst2) # ["升仙成功","升仙失败"]
# lst2列表添加到lst列表中,lst2本身不变.
1.3.2 列表的删除
列表的删除有四种方式(pop,remove,clear,del)
# pop删除用法
lst = ["asd","你好","hell world",123,"升仙"]
print(lst)
el = lst.pop() # 当pop()括号内为空时,默认删除最后一个索引所对应的的数据.
print(el) # 打印结果:升仙,pop删除列表的某一项时,会有返回值,其返回值就是被pop删除的内容.
print(lst) # ["asd","你好","hell world",123] lst = ["asd","你好","hell world",123,"升仙"]
el2 = lst.pop(2) # 删除索引为2的位置的值
print(el2) # hell world
print(lst) # ["asd","你好",123,"升仙"]
---------------------------------
# remove删除用法
lst = ["asd","你好","hell world",123,"升仙"]
lst.remove("升仙") # 可以删除指定元素,当删除不存在的元素会报错
print(lst) # ["asd","你好","hell world",123]
---------------------------------
# clear删除用法
lst.clear() # 清空list
print(lst) # []
---------------------------------
# 切片删除
del lst[1:3] # 强制删除
print(lst) # ["asd",123,"升仙"]
1.3.3 列表的修改
# 列表的修改
lst = ["asd","你好","hell world",123,"升仙"]
lst[1] = "飞升" # 把1号元素修改成飞升
print(lst) # ["asd","飞升","hell world",123,"升仙"]
lst[:4:2] = ["返璞归真", "融会贯通"] # 切片修改也可以,同时注意当步长不是1时,元素的个数要一一对应额否则会报错
print(lst) # ["返璞归真","飞升","融会贯通",123,"升仙"]
lst[1:4] = ["霸气外露"] # 如果切片没有步长或者步长是1时,则不用管替换的个数.
print(lst) # ["返璞归真","霸气外露","升仙"]
1.3.4 列表的查询
列表是一个可以迭代的对象
# 用for查询打印列表每一个元素
lst = ["asd","你好","hell world",123,"升仙"]
for el in lst:
print(el)
---------------------------------
# 查询元素在列表中出现的次数
lst = ["asd","你好","hell world",123,"升仙"]
c = lst.count("升仙") # 查询升仙出现的次数
print(c) # 1
---------------------------------
# 查询列表的长度
lst = ["asd","你好","hell world",123,"升仙"]
l=len(lst) # 列表的长度,与字符串的使用方式相同
print(l) # 5
1.3.4 列表的其他操作
# 升序
lst = [1,2,15,23,4,33]
lst.sort() # 排序,默认为升序.
print(lst) # [1,2,4,15,23,33]
---------------------------------
# 降序
lst.sort(reverse=True) # 降序
print(lst) # [33,23,15,4,2,1]
---------------------------------
# 翻转(倒序)
lst = ["asd","你好","hell world",123,"升仙"]
lst.reverse() # 此方法只针对列表内的各个元素,倒序
print(lst) # ["升仙",123,"hell world","你好","asd"]
列表嵌套
一层一层看灵活运用即可,融会贯通.
lst = ["武当","峨眉","少林",["崆峒",["极乐谷"],"华山"],"魔教"]
# 找到峨眉
print(lst[2])
# 找到少林和魔教
print(lst[2:])
# 找到崆峒
print(lst[3][0])
# 将崆峒改成丐帮
lst[3][0]="丐帮"
print(lst) # ['武当','峨眉','少林',['丐帮',['极乐谷'],'华山'],'魔教']
# 在lst列表后添加"丐帮"
lst.append("丐帮")
print(lst) # ['武当','峨眉','少林',['崆峒',['极乐谷'],'华山'],'魔教','丐帮']
二.元组
元组初识
元组俗称不可变的列表,又称为只读列表,元组也是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,循环也可以,查询可以,切片也可以,就是不能改.
注意: 这里元组的不可变的意思是当子元素是不可变对象时元素不可变,当子元素为可变对象时是可以变的, 这取决于子元素是否是为可变对象.
元组中如果只有一个元素,需要添加一个逗号,否则就不是一个元组,当tu=()时,print(type(tu)),打印结果显示tu是元组.
元组嵌套
元组也有,len(),count(),index()等方法,可以自己尝试直至融会贯通.
# 元组取值和切片
tup = ("asd","你好","hell world",123,"升仙")
print(tup[0]) # asd
print(tup[2]) # hell world
print(tup[2:]) # ("hell world",123,"升仙") 切片后仍然是元组
---------------------------------
# for循环
tup = ("asd","你好","hell world",123,"升仙")
for el in tup:
print(el)
---------------------------------
# 当元组内的子元素时可变类型时可以进行操作,将武当换成丐帮
tup = ("asd","你好","hell world",123,["武当","峨眉","少林"])
tup[-1][0]="丐帮"
print(tup) # ("asd","你好","hell world",123,["丐帮","峨眉","少林"])
# 这里元组的不可变的意思是子元素不可变,而字元素内部的子元素是可以变, 这取决于子元素是否是可变对象.
4.Python的不堪一击到初学乍练(列表,元组)的更多相关文章
- python笔记005-字符串-列表-元组
目录 1 上次作业补充拓展... 1 1.1 进制转换... 1 1.2 类型判断... 1 2 今日学习内容... 2 2.1 格式化输出... 2 2.2 基本运算符... 2 2.2.1 算术运 ...
- Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...
- Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法
对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...
- Python学习笔记(1):列表元组结构
Python的列表元组功能强大,令人印象深刻.一是非常灵活,二是便于集体操作.特别是以元组作为列表项的结构,和数据访问的结果能够对应起来,和习惯的二维表理解上也一致,有很多的用途. 以学习笔记(3)中 ...
- Python基础:序列(列表、元组)
一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...
- python【第二篇】列表、元组、字典及文件操作
本节内容 列表 元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作:列表有序.可变.元素 ...
- python列表元组
python列表元组 索引 切片 追加 删除 长度 循环 包含 定义一个列表 my_list = [] my_list = list() my_list = ['Michael', ' ...
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
随机推荐
- zkeacms源码解读一
1,app.UseZKEACMS 中注册可识别的路由 其中 CMS_Redirection 表中填写了跳转路由 对应的UrlRedirectService中将会读取所有的跳转规则. 有两个路由规则很 ...
- Android 7.1 GUI系统-窗口管理WMS-Surface管理(四)
Surface的管理 Surface是窗口能真正显示到物理屏幕上的基础,由surfaceflinger管理,可以通过WindowStateAnimator.java中的变量mDrawState来查看每 ...
- BZOJ 1634 [Usaco2007 Jan]Protecting the Flowers 护花:贪心【局部分析法】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1634 题意: 约翰留下他的N只奶牛上山采木.可是,当他回来的时候,他看到了一幕惨剧:牛们正 ...
- 【LeetCode】Reverse Words in a String 反转字符串中的单词
一年没有管理博客园了,说来实在惭愧.. 最近开始刷LeetCode,之前没刷过,说来也实在惭愧... 刚开始按 AC Rates 从简单到难刷,觉得略无聊,就决定按 Add Date 刷,以后也可能看 ...
- 「LuoguP1725」琪露诺(dp 单调队列
题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精. 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来.但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸.于是琪露诺决定到河岸去追 ...
- hive通过spark导入hbase
发现采用shcjar的话,总是执行到某个点就停止了 于是我打算尝试一下直接说哦用org.apache.hadoop.hbase.spark这个datasource看看 确实不行,即使没有createt ...
- poj3784Running Median——堆维护中间值
题目:http://poj.org/problem?id=3784 将较小的数放入大根堆,较大的数放入小根堆,控制较小数堆大小比较大数堆小1,则较大数堆堆顶即为中位数. 代码如下: #include& ...
- HL7 ADT Message Sample
http://pixpdqtests.nist.gov:8080/#tests%2Fdriver%2Fversion.htm 可以打开上述连接, 选中version和actor, 然后获取对于samp ...
- POJ-3616
Milking Time Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10434 Accepted: 4378 Des ...
- SVN 被防火墙阻止的解决方法
SVN 被防火墙阻止的解决方法: 1. 进入WIN7的防火墙,看到有的SVN服务是被阻止的,专用的和公用的要设置为允许被防火墙阻止的解决方法" TITLE="SVN 被防火墙阻止的 ...