Python基础--Python元素和容器(列表)

Python元素—列表

序列:列表,元组,字符串

列表

列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时。与字符串不同,列表是可变的。你可以直接对原始列表进行修改:添加新元素、删除或覆盖已有元素。在列表中,具有相同值的元素允许出现多次。

empty_list = [ ]  #创建空列表
empty_list =list()   #创建空列表,定义其属性是列表
weekdays =['星期一','星期二','星期三','星期四','星期五','星期六','星期日’]  #定义一个列表
name =['张三','李四','王五']

列表—数据类型转换

Python 的list() 函数可以将其他数据类型转换成列表类型。

>>> list('cat')  #字符串
['c', 'a', 't’]
>>> list('123')  
['1', '2', '3’]
>>> a_tuple = ('ready', 'fire', 'aim')  #元组
>>> list(a_tuple)
['ready', 'fire', 'aim’]
>>> birthday = '1/6/1952'
>>> birthday.split('/')   # 字符串分割
['1', '6', '1952']
""" 注意:如果待分割的字符串中包含连续的分隔符,那么在返回的列表中会出现空串元素:""" 
>>> splitme = 'a/b//c/d///e'
>>> splitme.split('/')
['a', 'b', '', 'c', 'd', '', '', 'e']
""" 如果把上面例子中的分隔符改成// 则会得到如下结果:"""
>>> splitme = 'a/b//c/d///e'
>>> splitme.split('//')
>>>
['a/b', 'c/d', '/e']

列表—获取元素

和字符串一样,通过偏移量可以从列表中提取对应位置的元素:

>>> marxes = ['Groucho', 'Chico', 'Harpo']
>>> marxes[0]
'Groucho'
>>> marxes[1]
'Chico'
>>> marxes[2]
'Harpo'

同样,负偏移量代表从尾部开始计数:

>>> marxes[-1]
'Harpo'
>>> marxes[-2]
'Chico'
>>> marxes[-3]
'Groucho'
列表的切片(SILCE)
你可以使用切片提取列表的一个子序列:
>>> marxes = ['Groucho', 'Chico,' 'Harpo']
>>> marxes[0:2]
['Groucho', 'Chico']
列表的切片仍然是一个列表。
与字符串一样,列表的切片也可以设定除1 以外的步长。下面的例子从列表的开头开始每2 个提取一个元素:
>>> marxes[::2]
['Groucho', 'Harpo']
再试试从尾部开始提取,步长仍为2:
>>> marxes[::-2]
['Harpo', 'Groucho']
利用切片还可以巧妙地实现列表逆序:
>>> marxes[::-1]
['Harpo', 'Chico', 'Groucho']

列表—包含列表的列表

列表可以包含各种类型的元素,包括其他列表,如下所示:

>>> Quarter=[[1,2,3],[4,5,6],[7,8,9,],[10,11,12]]  #定义Quarter
>>> print(Quarter)
[[1, 2, 3], [4, 5, 6], [7, 8,9], [10, 11, 12]]
>>> Quarter[1]
[4, 5, 6]
>>> Quarter[1][2]
6

列表—列表修改

列表可以包含各种类型的元素,包括其他列表,对列表元素的修改,如下所示:

Quarter=[[1,2,3],[4,5,6],[7,8,9,],[10,11,12]]
>>> Quarter[2][2] = 0
>>> print(Quarter)
[[1, 2, 3], [4, 5, 6], [7, 8, 0], [10, 11, 12]]
>>> Quarter[2][2]='0'
>>> print(Quarter)
[[1, 2, 3], [4, 5, 6], [7, 8, '0'], [10, 11, 12]]

列表—常用操作

列表的常用操作:

Quarter[0:2]			   # 指定范围并使用切片提取元素
Quarter.append(‘13’)	   # 使用append()添加元素至尾部
Quarter.extend(name)	  Quarter += others		# 使用extend()或+=合并列表
Quarter.insert(5, ‘14’)		# 使用insert()在指定位置插入元素
del Quarter[-1]				# 使用del删除指定位置的元素
del Quarter     		    # 会把整个列表删除
Quarter.remove(‘13’)     	# 使用remove()删除具有指定值的元素
Quarter.pop(1)		    	# 使用pop()获取并删除指定位置的元素 【 pop() 删除元素值会返回删除的值】
Quarter.index ([1,2,3]) 	#使用index()查询具有特定值的元素位置
‘2' in Quarter		    	# 使用in判断值是否存在
Quarter.count ([1,2,3]) 	# 使用count()记录特定值出现的次数
'* '.join(marxes) 			#  使用join()转换为字符串
sorted(marxes)	/ marxes.sort() 	#  重新排列元素
len(marxes) 				#  使用len()获取长度

三种copy赋值方法:

>>> a = [1, 2, 3]
>>> b = a.copy()  # 使用copy()复制
>>> c = list(a)    #使用=赋值
>>> d = a[:]		#使用切片赋值	

小讲堂:
join() 是split() 的逆过程,如下所示:

>>> friends = ['Harry', 'Hermione', 'Ron']
>>> separator = ' * '
>>> joined = separator.join(friends)
>>> joined
'Harry * Hermione * Ron'
>>> separated = joined.split(separator)
>>> separated
['Harry', 'Hermione', 'Ron']
>>> separated == friends
True

默认的排序是升序的,通过添加参数reverse=True 可以改变为降序排列:

>>> numbers = [2, 1, 4.0, 3]
>>> numbers.sort(reverse=True)
>>> numbers
[4.0, 3, 2, 1]
列表的copy
""" list7=list[:] 和list8=list6 的区别:""" 
>>>list6=[1,7,4,5]
>>>list7=list6[:]
>>>list8=list6
>>>list6.sort()
>>>list6
[1,4,5,7]
>>>list7
[1,7,4,5]
>>>list8
[1,4,5,7]

即list8只是相当于给list6多加了一个指向元素数据的标签而已,对于list7是将list6的东西都拷贝了过来,所以还是要用分片进行拷贝的,不可以偷懒哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值