python中有三种序列结构:字符串、元组、列表。元组和列表中并不要求所含元素的种类相同。元组是不可变的,列表是可以改变的。下面主要讲讲列表。
列表的创建:
>>> weekdays = ['monday','tuesday','wednesday']>>> empty_list =[]>>> another_empty_list = list() %使用list创建一个空列表
list()函数不单单可以建立一个空列表,还可以将一个其他数据类型转换为列表
>>> list('cat') %把字符串变成列表
['c', 'a', 't']>>> birthday = '1/6/1952'
>>> birthday.split('/') %split()可以依据分隔符将字符串变成列表
['1', '6', '1952']>>> a_tuple = ('z', 'z' ,'d')>>>list(a_tuple) %将元组转换成列表
['z', 'z', 'd']
列表和字符串一样可以用[ ]里偏移量获取对应位置的元素,也可以指定范围并使用切片提取元素,这里不再赘述。前面已经提过列表和字符串、元组不一样,可以改变,所以我们可以用 []来直接来改变列表中的元素。
下面来介绍一些关于列表的函数:
使用append()添加元素至尾部。
使用extend()或者+=合并列表
>>> num_1 = ['1','2','3']>>> num_2 = ['4','5','6']>>>num_1.extend(num_2)>>>num_1
['1', '2', '3', '4', '5', '6']
使用insert()在指定位置插入元素
>>> num_1.insert(1,'hello')>>>num_1
['1', 'hello', '2', '3', '4', '5', '6']
使用del删除指定位置的元素
>>> del num_1[1]>>>num_1
['1', '2', '3', '4', '5', '6']
使用remove()删除具有指定值的元素
>>> num_1.remove('4')>>>num_1
['1', '2', '3', '5', '6']
使用pop()获取并删除指定位置的元素
>>> num_1.pop(2)'3'
>>>num_1
['1', '2', '5', '6']
使用index()查询具有特定值的元素
>>> num_1.index('5')2
使用in判断值是否存在
>>> '2' innum_1
True>>> '3' innum_1
False
使用count()记录特定值出现的次数
>>> num_1.count('1')1
>>> num_1.count('3')
0
使用join()转换为字符串
>>> ','.join(num_1)'1,2,5,6'
>>> friends = ['Harry', 'Hermione', 'Ron']
>>> separator = ' * '
>>> joined = separator.join(friends)
>>> joined
'Harry * Hermione * Ron'
>>> separated = joined.split(separator)
>>> separated
['Harry', 'Hermione', 'Ron']
>>> separated == friends
True
使用sort()重新排列元素
%列表方法sort()会对原列表进行排序,改变原列表内容%通用函数 sorted() 则会返回排好序的列表副本,原列表内容不变。>>> marxes = ['Groucho', 'Chico', 'Harpo']>>> sorted_marxes =sorted(marxes)>>>sorted_marxes
['Chico', 'Groucho', 'Harpo']>>>marxes.sort()>>>marxes
['Chico', 'Groucho', 'Harpo']%默认的排序是升序的,通过添加参数 reverse=True 可以改变为降序排列:>>> numbers = [2, 1, 4.0, 3]>>> numbers.sort(reverse=True)>>>numbers
[4.0, 3, 2, 1]
使用len()获取长度
使用‘=’赋值,使用copy()复制
%使用‘=’,其实会使它们指向同一个变量,自己的变化都将影响对方>>> a = [1, 2, 3]>>>a
[1, 2, 3]>>> b =a>>>b
[1, 2, 3]>>> a[0] = 'surprise'
>>>a
['surprise', 2, 3]>>>b
['surprise', 2, 3]%如果不想这样相互影响,我们应该创建副本,使用copy(),list()或者列表分片>>> a = [1, 2, 3]>>> b =a.copy()>>> c =list(a)>>> d = a[:]