栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

『Python 自学笔记』重新认识列表

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

『Python 自学笔记』重新认识列表

文章目录
  • 我的编程之路
  • 列表也是序列
  • 列表元素可修改
  • 遍历列表
  • 列表运算符
  • 列表切片
  • 列表的方法
  • 列表的运算符
  • 删除元素
  • 列表和字符串
  • 对象和值
  • 列表术语

我的编程之路

从玩耍Excel表格到MySQL数据仓库,之后进入数据分析的天坑,然后再到大数据平台HIVE、Hbase。接着Django Web全栈开发。在走过这一圈之后,很多的内容学习都是碎片化的,在未来一段时间找几本书籍系统的学习一下,顺便做个笔记给后来的学生。

列表是 Python 里面最有用的一种内置类型。

列表也是序列

列表是一系列的数值的序列,这些值可以是任意类型的,值一般叫做列表的元素,有时候也叫列表项。

一个简单的列表组成。

>>> list_ = ['spam', 2.0, 5, [10, 20]]
>>> str_list= ['Cheddar', 'Edam', 'Gouda']
>>> num_list= [42, 123]
>>> empty_list = []
>>> print(list_ , str_list, num_list,empty_list )
['spam', 2.0, 5, [10, 20]]
['Cheddar', 'Edam', 'Gouda']
[42, 123]
[]
列表元素可修改

和字符串不同的是,列表是可以修改的。通过指定列表元素的索引坐标进行替换修改即可。

>>> num_list = [42, 123]
>>> num_list[1] = 5
>>> num_list
[42, 5]

同样也可以使用in 进行元素的判断。

>>> cheeses = ['Cheddar', 'Edam', 'Gouda']
>>> 'Edam' in cheeses
True
>>> 'Brie' in cheeses
False
遍历列表

可以使用for循环进行遍历。

cheeses = ['Cheddar', 'Edam', 'Gouda']
for cheese in cheeses:
    print(cheese)
Cheddar
Edam
Gouda

同样列表中嵌套列表也是可以遍历

cheeses = ['Cheddar', 'Edam', 'Gouda',['Cheddar', 'Edam', 'Gouda']]
for cheese in cheeses:
    print(cheese)
Cheddar
Edam
Gouda
['Cheddar', 'Edam', 'Gouda']
列表运算符

使用 + 对列表进行拼接。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a + b
>>> c
[1, 2, 3, 4, 5, 6]

使用 * 对列表进行乘法拼接。

>>> [0] * 4
[0, 0, 0, 0]
>>> [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
列表切片

列表也可以进行切片操作。

>>> t = ['a', 'b', 'c', 'd', 'e', 'f']
>>> t[1:3]
['b', 'c']
>>> t[:4]
['a', 'b', 'c', 'd']
>>> t[3:]
['d', 'e', 'f']
>>> t[:]
['a', 'b', 'c', 'd', 'e', 'f']
>>> t[1:3] = ['x', 'y']
>>> t
['a', 'x', 'y', 'd', 'e', 'f']
列表的方法

列表可以是用append的方法追加拼接。

>>> t = ['a', 'b', 'c']
>>> t.append('d')
>>> t
['a', 'b', 'c', 'd']

或者追加列表。

>>> t = ['a', 'b', 'c']
>>> t.append(['d'])
>>> t
['a', 'b', 'c', ['d']]

可以使用 sort 对列表进行排序。

>>> t = ['d', 'c', 'e', 'b', 'a']
>>> t.sort()
>>> t
['a', 'b', 'c', 'd', 'e']
列表的运算符

列表内置 sum 加法运算符。

>>> t = [1, 2, 3]
>>> sum(t)
6

filter方法,逐个从sequence中取一个元素,传入function,返回一个使function为真的序列。 如果参数sequence是str、unicode或者tuple,则返回相同的类型,否则都返回一个list。

def testFilter(x):
    return x%2  #x是否能被2整除
 
print (filter(testFilter,range(1,10))) #返回不能被2整除的序列
print (filter(None,range(1,10))) #返回整个range(1,10)序列

[1, 3, 5, 7, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

map方法,map(function, sequence) 逐个从sequence中取一个元素传入function,function的每个返回值组成列表作为map函数的返回值。

def testMap(x,y):
    return x+y 
print (map(testMap,range(1,5),range(1,5)))
print (map(testMap,range(1,5),range(1,3)))

[2, 4, 6, 8]

reduce方法,reduce(function, sequence) 取sequnce的第一个元素和第二个元素作为初始值传入function,计算后function的返回值和sequnce的下一个元素作为参数传入function进行计算,直到sequence的所有元素计算完成,将最后得到的值作为reduce的返回值。

def testReduce(x,y):
    return x+y
    
#打印range(10)的所有元素相加的值,计算过程:0+1+2+..+9
print (reduce(testReduce,range(10))) 
#打印10和range(10) 所有元素相加的值,计算过程:10+0+1+2+...+9
print (reduce(testReduce,range(10),10))

45
55
删除元素

如果知道元素的索引可以使用pop删除元素。

>>> t = ['a', 'b', 'c']
>>> x = t.pop(1)
>>> t
['a', 'c']
>>> x
'b'

如果不知道元素的索引可以使用remove删除对应元素。

>>> t = ['a', 'b', 'c']
>>> t.remove('b')
>>> t
['a', 'c']

删除更多元素使用del。

>>> t = ['a', 'b', 'c', 'd', 'e', 'f']
>>> del t[1:5]
>>> t
['a', 'f']
列表和字符串

列表和字符串可以相互转换。

>>> s = 'spam'
>>> t = list(s)
>>> t
['s', 'p', 'a', 'm']
>>> ''.joing(t)
spam


>>> s = 'pining for the fjords'
>>> t = s.split()
>>> t
['pining', 'for', 'the', 'fjords']
>>> ' '.joing(t)
pining for the fjords

如果列表的格式是字符串格式,可以使用eval转换。

str_ = "['pining', 'for', 'the', 'fjords']"
eval(str_)
['pining', 'for', 'the', 'fjords']
对象和值

列表和字符串在is判断的时候是有区别的。

a = 'banana'
b = 'banana'

>>> a is b
True

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
列表术语
  • 列表(list):一系列值的序列。
  • 元素(element):一个列表或者其他序列中的值,也叫项。
  • 网状列表(nested list):一个作为其他列表元素的列表。
  • 累加器(accumulator):一种用来在循环中累加或者拼接结果的变量。
  • 增强赋值语句(augmented assignment):使用+=这种自增运算符来更新变量值的语句。
  • reduce:一种处理模式,遍历一个序列,把元素积累起来结合成一个单独的结果。
  • map:一种处理模式,遍历一个序列,对每一个元素都进行某种运算。
  • filter:一种处理模式,遍历一个列表,选取其中满足特定规则的一些元素。
  • 对象(object):变量所指向的就是对象。一个对象有特定的某个类型,以及一个值。
  • 相等(equivalent):有相等的值。
  • 相同(identical):是同一个对象(意味着必然就是相等了)。
  • 引用(reference):变量 a 与其值的关系。
  • 别名(aliasing):同一个对象有两个或者更多变量所指向的情况。
  • 定界符(delimiter):一个字符或者字符串,用来确定字符分割时候的分界。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529348.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号