python初步学习-python数据类型-列表(list)
列表
list 在 python 中具有非常强大的功能
定义
在python中,用方括号表示一个list:[]
在方括号里面,可以是 int,也可以是 str类型的数据,甚至也可以是Flase/True这样的布尔值
- 列表可以无限大,就是说list里面可以容纳的元素数量无限,当然这是在硬件设备理想的情况下。
在 java 中有一个跟 list 相似的数据类型-数组,但是两者之间还是有差别的。
在 java 中,数组的元素必须是基本数据类型中某一个,也就是相同数据类型,要么全是int类型,要么全是char类型等。不能一个数组中既有int类型又有char类型。这是因为java中的数组需要提前声明,声明的时候就确定了里面的类型。但是list中的元素数据类型确实任意的,可以是int、str、list,dict等。
- 列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。
- 索引操作符让我们可以从序列中抓取一个特定项目
- 切片操作符让我们能够获取序列的一个切片,即一部分序列
索引和切片
在字符串中,索引号是以字符为单位确定的;而在list中,是以元素为单位
>>> a = 'hello.world'
>>> a[2]
'l'
>>> b = ['alpha','bete','gamma']
>>> type(b)
<type 'list'>
>>> b[2]
'gamma'
>>> b[:2] #跟str中的类似,切片的范围是:包含开始位置,到结束位置之前
['alpha', 'bete'] #不包含结束位置
>>> b[:2][1] #可以进行二次切片
'bete'
list和str两种类型的数据,有共同的地方,它们都属于序列(都是一些对象按照某个次序排列起来,这就是序列的最大特征),因此,就有很多类似的地方。如刚才演示的索引和切片,是非常一致的。
>>> a.index('h')
0
>>> b.index('bete')
1
如果从右边开始编号,右边第一个可以编号为-1,然后向左依次是:-2,-3,...,依次类推下来。这对字符串、列表等各种序列类型都是用。
>>> a[-1]
'd'
>>> b[-2]
'bete'
反转
这个功能在编程中经常会用到。
方法一
>>> b = ['alpha','bete','gamma']
>>> b[::-1]
['gamma', 'bete', 'alpha']
>>> b
['alpha', 'bete', 'gamma']
上述不管是str还是lst反转之后,再看原来的值,没有改变。这就说明,这里的反转,不是在“原地”把原来的值倒过来,而是新生成了一个值,那个值跟原来的值相比,是倒过来了。
方法二
使用 reversed() 函数
>>> b
['alpha', 'bete', 'gamma']
>>> reversed(b)
<listreverseiterator object at 0x059DC170>
>>> list(reversed(b))
['gamma', 'bete', 'alpha']
它返回一个可以迭代的对象
list基本操作
- len() 查看list中的元素个数
>>> b
['alpha', 'bete', 'gamma']
>>> len(b)
3
- + 连接两个列表
>>> b
['alpha', 'bete', 'gamma']
>>> len(b)
3
>>> c = ['apple','orange','banana']
>>> b + c
['alpha', 'bete', 'gamma', 'apple', 'orange', 'banana']
- * 重复元素
>>> b*2
['alpha', 'bete', 'gamma', 'alpha', 'bete', 'gamma']
- count 计算元素在列表中出现的次数
>>> b
['alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> b.count('a')
0
>>> b.count('alpha')
1
- in 成员运算符
>>> 'apple' in c
True
>>> 'apple' not in c
False
- max()、min() 用法和str中的一样,需要注意的是如果元素不是int类型,都是按照字符在ascii编码中所对应的数字进行比较的。
>>> max(b)
'gamma'
>>> min(b)
'alpha'
- append 将新的元素x追加到list的尾部。
>>> b
['alpha', 'bete', 'gamma']
>>> b.append('delta')
>>> b
['alpha', 'bete', 'gamma', 'delta']
>>> id(b)
94144512
>>> b.append('epsilon')
>>> b
['alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> id(b)
94144512
从上面可以看出,生成一个新的列表后,列表的地址没有发生变化,因此,可以说明
列表是可以修改的。这种修改,不是复制一个新的,而是在原地进行修改。
- insert 将元素插入到列表中,不是尾部
>>> b
['alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> b.insert(0,'zaeta')
>>> b
['zaeta', 'alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>>
list中的元素,不仅能增加,还能被删除。删除list元素的方法有两个,它们分别是:
- pop 删除最后一个元素并返回这个元素
>>> b
['zaeta', 'alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> b.pop()
'epsilon'
>>> b
['zaeta', 'alpha', 'bete', 'gamma', 'delta']
- remove 移除指定元素,没有返回值
>>> b
['zaeta', 'alpha', 'bete', 'gamma', 'delta']
>>> b.remove('delta')
>>> b
['zaeta', 'alpha', 'bete', 'gamma']
python初步学习-python数据类型-列表(list)的更多相关文章
- python初步学习-python函数(一)
python 函数 函数是组织好的,可重复使用的,用来实现单一或者相关联功能的代码段. 函数能提高应用的模块性和代码的重复利用率. 函数定义 python中函数定义有一些简单的规则: 函数代码块以de ...
- python初步学习-python数据类型之strings(字符串)
数据类型-字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号(''或者"")来创建字符串 var1 = 'Hello World!' var2 = "P ...
- python初步学习-python数据类型之number(数值)
数据类型之 Number python number 数据类型用于存储数值. 数据类型是不容许改变的. 这就意味着如果改变 number 数据类型的值,将重新分配内存空间. python支持四种不同数 ...
- python初步学习-python数据类型-集合(set)
集合 在已经学过的数据类型中: 能够索引的,如list/str,其中的元素可以重复 可变的,如list/dict,即其中的元素/键值对可以原地修改 不可变的,如str/int,即不能进行原地修改 无索 ...
- python初步学习-python数据类型-字典(dict)
字典 字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起.注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息. 注意,你只 ...
- python初步学习-python文件操作
文件 文件,在python中,他是一种类型的对象,类似前面已经学过的其他数据类型,包括文本的.图片的.音频的.视频的等等,还有不少没见过的扩展名的.事实上,在linux操作系统中,所有的东西都被保存到 ...
- python初步学习-python控制流
语句书写规范 缩进在python语言书写中非常重要,如果缩进不规范,执行程序将会报错 引用维基百科中的叙述: Python開發者有意讓違反了縮排規則的程序不能通過編譯,以此來強迫程序員養成良好的編程習 ...
- python初步学习-Python模块之 re
re 正则表达式 python正则表达式在线检验网站 python re正则表达式语法 匹配字符 语法 解释 表达式 匹配实例 . 匹配任意除"\n"以外的任何字符 a.c abc ...
- python初步学习-python 模块之 json
json 模块 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写.一般API返回的数据大多是 JSON.XML,如果返回JSON的话,将获取 ...
随机推荐
- React 16.x & Hooks
React 16.x & Hooks Hooks https://reactjs.org/docs/hooks-intro.html https://reactjs.org/docs/hook ...
- 第25天:js-封装函数-淘宝鼠标展示
封装函数: 1.函数形参相当于变量,不能加引号. 2.实参要和形参一一对应. 案例:鼠标移到小图上,背景展示相应放大的图片.代码如下: <!DOCTYPE html> <html l ...
- python函数入门到高级
函数的定义: def test(x): "The function definitions" x+=1 return x def:定义函数的关键字 test:函数名 ():内可定义 ...
- NOIP2018初赛 游记
这玩意写个鬼游记啊 听说普及+提高的考两张卷子€€£也是想得出来 怎么监考还能咕咕咕的啊 怎么我到快结束了才做完啊 怎么我根本不知道初赛能带啥啊 怎么dij我都能想着对的选了错的啊 怎么我根本不知道图 ...
- CentOS 访问控制列表(tcp wrappers)
1.TCP Wrappers是一个工作在应用层的安全工具,它只能针对某些具体的应用或者服务起到一定的防护作用.比如说ssh.telnet.FTP等服务的请求,都会先受到TCP Wrappers的拦截. ...
- CentOS expr和let
1.expr,用于计算变量等 用法:expr 表达式 用例1: #运算符号和参数之间要有空格分开:[es@bigdata-senior01 ~]$ expr 2 + 3 5 #乘号(*)需要用 \ , ...
- CentOS 查看系统内核和版本
1.uname 命令用于查看系统内核与系统版本等信息,格式为“uname [-a]”. [root@bigdata-senior01 ~]# uname -a Linux bigdata-senior ...
- POJ1523:SPF——题解
http://poj.org/problem?id=1523 这题明显就是求割点然后求割完之后的强连通分量的个数. 割点都会求,怎么求割完的分量个数呢? 我们可以通过万能的并查集啊!(具体做法看代码吧 ...
- BZOJ3864 & HDU4899:Hero meet devil——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3864 http://acm.hdu.edu.cn/showproblem.php?pid=4899 ...
- BZOJ1934:[SHOI2007]善意的投票 & BZOJ2768:[JLOI2010]冠军调查——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1934 https://www.lydsy.com/JudgeOnline/problem.php? ...