1.5 列表

本节介绍 Python 原始数据类型列表(list)。 列表是一种有序的集合。python

建立列表

使用方括号 [] 来定义列表字面量。git

names = [ 'Elwood', 'Jake', 'Curtis' ]

nums = [ 39, 38, 42, 65, 111]

有时候,列表也能够经过其它方法建立。例如:使用字符串的 split() 方法能够将一个字符串拆分为一个列表:github

>>> line = 'GOOG,100,490.10'

>>> row = line.split(',')

>>> row

['GOOG', '100', '490.10']

>>>

列表操做

列表能够存储任何类型的项(译注:item,或者称为元素)。使用 append() 方法添加一个新的项:编程

names.append('Murphy') # Adds at end

names.insert(2, 'Aretha') # Inserts in middle

使用加号 + 来拼接列表:app

s = [1, 2, 3]

t = ['a', 'b']

s + t # [1, 2, 3, 'a', 'b']

列表经过整数进行索引,索引从 0 开始。编程语言

names = [ 'Elwood', 'Jake', 'Curtis' ]

names[0] # 'Elwood'

names[1] # 'Jake'

names[2] # 'Curtis'

负索引从列表尾部开始计数:函数

names[-1] # 'Curtis'

你能够改变列表中的任何项:测试

names[1] = 'Joliet Jake'

names # [ 'Elwood', 'Joliet Jake', 'Curtis' ]

列表的长度:spa

names = ['Elwood','Jake','Curtis']

len(names) # 3

成员测试(in, not in):

'Elwood' in names # True

'Britney' not in names # True

复制(s * n):

s = [1, 2, 3]

s * 3 # [1, 2, 3, 1, 2, 3, 1, 2, 3]

列表遍历和查找:

使用 for 遍历列表内容:

for name in names:

# use name

# e.g. print(name)

...

这和其它编程语言的 foreach 语句相似。

为了快速找到某项的位置(索引),使用 index() 函数:

names = ['Elwood','Jake','Curtis']

names.index('Curtis') # 2

若是元素出现不止一次,index() 方法将会返回元素第一次出现的索引。

若是元素没有找到,index() 方法将引起 ValueError 异常。

列表删除

你能够按元素值或者按索引删除元素:

# Using the value

names.remove('Curtis')

# Using the index

del names[1]

移除一个元素不会“留空”。其它的元素将会移动来填充删除元素后腾出的空间。若是元素出现不止一次,remove() 方法将只删除第一次出现的元素。

列表排序

列表能够“原地”排序:

s = [10, 1, 7, 3]

s.sort() # [1, 3, 7, 10]

# Reverse order

s = [10, 1, 7, 3]

s.sort(reverse=True) # [10, 7, 3, 1]

# It works with any ordered data

s = ['foo', 'bar', 'spam']

s.sort() # ['bar', 'foo', 'spam']

若是你想生成一个新的列表,使用 sorted() 函数:

t = sorted(s) # s unchanged, t holds sorted values

列表和数学

警告:列表不是为数学运算而设计的:

>>> nums = [1, 2, 3, 4, 5]

>>> nums * 2

[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

>>> nums + [10, 11, 12, 13, 14]

[1, 2, 3, 4, 5, 10, 11, 12, 13, 14]

特别地,列表没法像 MATLAB, Octave, R 那样表示向量/矩阵。可是,有一些包能够帮助你解决这个问题(例如:numpy)。

练习

在本次练习中,咱们尝试使用 Python 的列表数据类型。在上一节中,你使用了包含股票代码的字符串:

>>> symbols = 'HPQ,AAPL,IBM,MSFT,YHOO,DOA,GOOG'

使用字符串的 split() 方法把 symbols 拆分为一个包含股票代码名字的列表:

>>> symlist = symbols.split(',')

练习1.19:提取和从新分配列表元素

尝试一些查找:

>>> symlist[0]

'HPQ'

>>> symlist[1]

'AAPL'

>>> symlist[-1]

'GOOG'

>>> symlist[-2]

'DOA'

>>>

尝试从新分配一个值:

>>> symlist[2] = 'AIG'

>>> symlist

['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'DOA', 'GOOG']

>>>

切片:

>>> symlist[0:3]

['HPQ', 'AAPL', 'AIG']

>>> symlist[-2:]

['DOA', 'GOOG']

>>>

建立一个空的列表并添加一个元素到其中:

>>> mysyms = []

>>> mysyms.append('GOOG')

>>> mysyms

['GOOG']

你能够将一个列表的一部分从新分配到另外一个列表中。例如:

>>> symlist[-2:] = mysyms

>>> symlist

['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG']

>>>

当执行此操做时,左手边的列表(symlist)的大小将会被适当调整,以适应右手边的列表。

例如,在上面的实例中,symlist 的最后两项被 mysyms 列表中的单个元素('GOOG')取代。

练习1.20:遍历列表元素

for 循环能够遍历列表这样的序列。经过输入下列的循环而且查看发生了什么来验证这点:

>>> for s in symlist:

print('s =', s)

# Look at the output

练习1.21:成员测试

使用 in 或者 not in 操做符来检查 'AIG','AA',和 'CAT' 是否在 symbols 列表中:

>>> # Is 'AIG' IN the `symlist`?

True

>>> # Is 'AA' IN the `symlist`?

False

>>> # Is 'CAT' NOT IN the `symlist`?

True

>>>

练习 1.22:添加,插入和删除元素

使用 append() 方法把 'RHT' 添加到列表 symlist 的末尾:

>>> # append 'RHT'

>>> symlist

['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']

>>>

使用 insert() 方法把 'AA' 做为列表的第二个元素插入到列表中:

>>> # Insert 'AA' as the second item in the list

>>> symlist

['HPQ', 'AA', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']

>>>

使用 remove() 方法从列表中删除 'MSFT':

>>> # Remove 'MSFT'

>>> symlist

['HPQ', 'AA', 'AAPL', 'AIG', 'YHOO', 'GOOG', 'RHT']

>>>

添加一个重复的 'YHOO' 条目到列表的末尾。

注意:列表有重复的值是彻底没有问题的:

>>> # Append 'YHOO'

>>> symlist

['HPQ', 'AA', 'AAPL', 'AIG', 'YHOO', 'GOOG', 'RHT', 'YHOO']

>>>

使用 index() 方法查看 'YHOO' 在列表中的第一个位置:

>>> # Find the first index of 'YHOO'

4

>>> symlist[4]

'YHOO'

>>>

统计 'YHOO' 在列表中出现了多少次:

>>> symlist.count('YHOO')

2

>>>

删除第一次出现的 'YHOO':

>>> # Remove first occurrence 'YHOO'

>>> symlist

['HPQ', 'AA', 'AAPL', 'AIG', 'GOOG', 'RHT', 'YHOO']

>>>

众所周知,没有方法找到或者删除某个元素在列表中重复出现的全部项。可是,咱们将会在第二节看到一种优雅的方式去实现它。

练习1.23:排序

想要对一个列表排序吗?使用 sort() 方法。试试看:

>>> symlist.sort()

>>> symlist

['AA', 'AAPL', 'AIG', 'GOOG', 'HPQ', 'RHT', 'YHOO']

>>>

想要对一个列表倒序吗?尝试这个:

>>> symlist.sort(reverse=True)

>>> symlist

['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']

>>>

注意:对列表排序能够“原地”修改其内容。也就是说,是对列表的元素进行“洗牌”,而不是建立一个新的列表做为结果。

练习 1.24:列表转字符串

想要把一个包含字符串的列表链接到一个字符串中吗?像下面这样使用字符串的 join() 方法实现(注意:这初看起来颇有趣):

>>> a = ','.join(symlist)

>>> a

'YHOO,RHT,HPQ,GOOG,AIG,AAPL,AA'

>>> b = ':'.join(symlist)

>>> b

'YHOO:RHT:HPQ:GOOG:AIG:AAPL:AA'

>>> c = ''.join(symlist)

>>> c

'YHOORHTHPQGOOGAIGAAPLAA'

>>>

练习1.25:包含任何内容的列表

列表能够包含任何类型的对象,包括列表(示例:嵌套的列表)。试试看:

>>> nums = [101, 102, 103]

>>> items = ['spam', symlist, nums]

>>> items

['spam', ['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA'], [101, 102, 103]]

请注意上面的输出,items 是一个包含三个元素的列表,第一个元素是一个字符串,其它两个元素是列表。

你能够经过多个索引操做来访问嵌套列表的项。

>>> items[0]

'spam'

>>> items[0][0]

's'

>>> items[1]

['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']

>>> items[1][1]

'RHT'

>>> items[1][1][2]

'T'

>>> items[2]

[101, 102, 103]

>>> items[2][1]

102

>>>

尽管在技术上可以生成很是复杂的列表结构,但做为通常规则,你仍是但愿保持简单。一般,列表存储类型相同的元素。例如,彻底由数字或者文本字符串构成的列表。在同一个列表中混合不一样类型的数据,每每会让人感到头痛,所以最好避免这种状况。

python编程输入名字配对情侣网名_翻译:《实用的Python编程》01_05_Lists相关推荐

  1. python编程输入名字配对情侣网名_输入名字制作情侣网名,如何制作甜蜜的情侣网名?...

    起一个时尚的网名是每个年轻人都梦寐以求的事,想要让自己和对象的网名都能够好听,那是非常困难的.我们都知道情侣要非常匹配,才能是高分的情侣网名,并且还需要符合现代的审美,下面是输入名字制作情侣网名,希望 ...

  2. python编程输入名字配对情侣网名_名字配对测试两人关系,亲测有点准。

    原标题:名字配对测试两人关系,亲测有点准. 无论是正在爱情中,还是爱情处于萌芽中,都有一种朦胧的处境,理不清,里还乱,我们便可以通过名字配对测试两人关系来转移注意力. 情侣姓名配对方法: 就是把你们两 ...

  3. python编程输入名字配对情侣网名_输入名字配对情侣网名 好听的情侣网名大全...

    ♪等待著 ♥ ♪盼望著 唯你不爱i ☜♥☞ 依你不娶i 萤火.微微凉 ♥ 浅草.微微暖 痴心i ☜♥☞ @痴情i 初晓i ☜♥☞ 诗音i 拉扯i ☜♥☞ 牵扯i 萌叔 # ☜♥☞ 檬婶 就爱@ ☜♥☞ ...

  4. python编程输入名字配对情侣网名_定制情侣网名输入自己名字情侣

    我这个人很害羞的,不信你亲我一下我害羞给你看. 1.过去变成思念の过去变成回忆 2.ɑ``宿``◆のɑ``雙``◆ 3.V一句xのf一季花落 4.句句不该深情の字字不该挽留 5.断弦の新词 6.对我也 ...

  5. python输入名字配对情侣网名_输入名字制作情侣网名-网名搜索

    输入名字制作情侣网名 4.有用吗精神病哈哈哈臭 5.嫃☆的好想你 6.素描了你的影子拿来想念. 7.賣萠是ke恥滴 9.少女心英雄梦 10.萬千寵儿 11.此刻你心裏想起谁 13.没有一种痛是单为你准 ...

  6. python输入名字配对情侣网名_输入名字配置情侣网名

    输入名字配置情侣网名 吴泽宁 王香香 输入名字配置情侣网名 何浩轩 凌依 输入名字配置情侣网名 马冬梅 杨连通 输入名字配置情侣网名 家园里有一个应用"一键成名"打上你和她的名字, ...

  7. python输入名字配对情侣网名_输入姓名配对情侣网名,情侣网名名字配对

    提起输入姓名配对情侣网名,大家都知道,有人问打出自己的名字和对象的名字,就能匹配出情侣网名的网站!!!谁给我一个啊!,另外,还有人想问情侣名字配对甜甜的情侣网名,你知道这是怎么回事?其实情侣名字配对测 ...

  8. python输入名字配对情侣网名_定制情侣网名输入名字

    5字经典情侣网名大全一对:感情的倔强 |执着的梦想 时光恋人i ♥ 时光爱人i毕竟你是光 ♥ 我无法独享祖国小嫩草 ♥ 祖国小花朵流年,残颜 &heartqq情侣网名 06-02|查看全文 在 ...

  9. python输入名字配对情侣网名_输入名字得情侣网名

    设计是 把一种设想 通过合理的规划 周密的计划 通过各种感觉形式传达出来的过程.人类通过劳动改造世界,创造文明,创造物质财富和精神财富,而最基础.最主要的创造活动是造物.设计便是造物活动进行预先的计划 ...

最新文章

  1. Java培训进阶书籍推荐,赶快收藏起来!
  2. python 异常分类_python的异常处理
  3. tomcat集群 (自带Cluster集群)
  4. shlwapi常用的操作路径函数
  5. [BZOJ3992]序列统计
  6. 计算机操作系统英文版课后答案,计算机操作系统(第3版)课后习题答案(完整版)...
  7. dataframe 拼接_拼接关系图在石材生产过程中的重要性
  8. whereis 命令(转)
  9. Python3 有序字典—OrderedDict()
  10. Croc Champ 2013 - Round 1 E. Copying Data(线段树)
  11. linux 添加删除用户
  12. 关于opencv在vs201x中的设置 2020-02-04
  13. 开源库openhtmltopdf html 转pdf特殊字符适配
  14. 海淘尺码表,贡献给论坛买衣服裤子鞋子的朋友
  15. 多个excel工作簿合并_EXCEL2016中如何快速合并多个工作簿中内容到一个工作表
  16. html2canvas黑背景,解决canvas转base64/jpeg时透明区域变成黑色背景的方法
  17. opencv 使用 GPU 加速
  18. git fatal: unable to access '/': schannel: next InitializeSecurityContext error (0x80092013)
  19. Newcomer先生的blog中文版的志愿者翻译已经招募
  20. 专业音频工具au 2019 mac 直装版——Audition CC 2019 for Mac 12.1.0.182中文特别版

热门文章

  1. python Gstreamer 播放不同编码格式的视频文件
  2. Spark创建hive表报错 ROW FORMAT DELIMITED is only compatible with ‘textfile‘, not ‘orc‘
  3. php 法定节假日接口,通过百度接口获取每一个月的工作和法定假日
  4. 第十章:Archiving
  5. 台电推出疾霆系列高端NVMe SSD,搭载联芸全新主控高速级读写
  6. 正则表达式在JS中的应用,判断邮箱是否合法
  7. win10linux双系统引导设置,win10 + Ubuntu20.04 LTS双系统引导界面美化
  8. Atitit q2016 qb doc list on home ntpc.docx
  9. chrome浏览器怎么模拟手机访问网页(已測OK)
  10. 程序员的希波克拉底誓言