博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lists
阅读量:4309 次
发布时间:2019-06-06

本文共 5484 字,大约阅读时间需要 18 分钟。

动态数组,可以存储不同数据类型

>>> a = ['spam', 'eggs', 100, 1234]>>> a['spam', 'eggs', 100, 1234]

和string一样,支持索引,+,*

>>> a[0]'spam'>>> a[3]1234>>> a[-2]100>>> a[1:-1]['eggs', 100]>>> a[:2] + ['bacon', 2*2]['spam', 'eggs', 'bacon', 4]>>> 3*a[:3] + ['Boo!']['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']

和string不同,list的元素是可变的

>>> a['spam', 'eggs', 100, 1234]>>> a[2] = a[2] + 23>>> a['spam', 'eggs', 123, 1234]

可以给范围索引负值,另类的插入、删除操作

>>> # Replace some items:... a[0:2] = [1, 12]>>> a[1, 12, 123, 1234]>>> # Remove some:... a[0:2] = []>>> a[123, 1234]>>> # Insert some:... a[1:1] = ['bletch', 'xyzzy']>>> a[123, 'bletch', 'xyzzy', 1234]>>> # Insert (a copy of) itself at the beginning>>> a[:0] = a>>> a[123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]>>> # Clear the list: replace all items with an empty list>>> a[:] = []>>> a[]

len()内置函数用来测量长度

>>> a = ['a', 'b', 'c', 'd']>>> len(a)4

多维数组

>>> q = [2, 3]>>> p = [1, q, 4]>>> len(p)3>>> p[1][2, 3]>>> p[1][0]2

appen函数在数组末尾添加元素

>>> p[1].append('xtra')>>> p[1, [2, 3, 'xtra'], 4]>>> q[2, 3, 'xtra']

 in操作符测试包含关系

def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):    while True:        ok = input(prompt)        if ok in ('y', 'ye', 'yes'):            return True        if ok in ('n', 'no', 'nop', 'nope'):            return False        retries = retries - 1        if retries < 0:            raise IOError('refusenik user')        print(complaint)

 常用函数

list.
append
(
x
)

Add an item to the end of the list. Equivalent to a[len(a):] = [x].

list.
extend
(
L
)

Extend the list by appending all the items in the given list. Equivalent to a[len(a):] = L.

list.
insert
(
i
x
)

Insert an item at a given position. The first argument is the index of the element before which to insert, so a.insert(0, x) inserts at the front of the list, and a.insert(len(a), x) is equivalent to a.append(x).

list.
remove
(
x
)

Remove the first item from the list whose value is x. It is an error if there is no such item.

list.
pop
(
[
i
]
)

Remove the item at the given position in the list, and return it. If no index is specified, a.pop() removes and returns the last item in the list. (The square brackets around the i in the method signature denote that the parameter is optional, not that you should type square brackets at that position. You will see this notation frequently in the Python Library Reference.)

list.
index
(
x
)

Return the index in the list of the first item whose value is x. It is an error if there is no such item.

list.
count
(
x
)

Return the number of times x appears in the list.

list.
sort
(
)

Sort the items of the list in place.

list.
reverse
(
)

Reverse the elements of the list in place.

 

>>> a = [66.25, 333, 333, 1, 1234.5]>>> print(a.count(333), a.count(66.25), a.count('x'))2 1 0>>> a.insert(2, -1)>>> a.append(333)>>> a[66.25, 333, -1, 333, 1, 1234.5, 333]>>> a.index(333)1>>> a.remove(333)>>> a[66.25, -1, 333, 1, 1234.5, 333]>>> a.reverse()>>> a[333, 1234.5, 1, 333, -1, 66.25]>>> a.sort()>>> a[-1, 1, 66.25, 333, 333, 1234.5]

list做栈用

>>> stack = [3, 4, 5]>>> stack.append(6)>>> stack.append(7)>>> stack[3, 4, 5, 6, 7]>>> stack.pop()7>>> stack[3, 4, 5, 6]>>> stack.pop()6>>> stack.pop()5>>> stack[3, 4]

list做队列用

>>> from collections import deque>>> queue = deque(["Eric", "John", "Michael"])>>> queue.append("Terry")           # Terry arrives>>> queue.append("Graham")          # Graham arrives>>> queue.popleft()                 # The first to arrive now leaves'Eric'>>> queue.popleft()                 # The second to arrive now leaves'John'>>> queue                           # Remaining queue in order of arrivaldeque(['Michael', 'Terry', 'Graham'])

List Comprehensions   可读性更高,更简洁的集合初始化

>>> squares = []>>> for x in range(10):...     squares.append(x**2)...>>> squares[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]#等价于squares = [x**2 for x in range(10)]
>>> combs = []>>> for x in [1,2,3]:...     for y in [3,1,4]:...         if x != y:...             combs.append((x, y))...>>> combs[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]#等价于>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y][(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

 

>>> vec = [-4, -2, 0, 2, 4]>>> # create a new list with the values doubled>>> [x*2 for x in vec][-8, -4, 0, 4, 8]>>> # filter the list to exclude negative numbers>>> [x for x in vec if x >= 0][0, 2, 4]>>> # apply a function to all the elements>>> [abs(x) for x in vec][4, 2, 0, 2, 4]>>> # call a method on each element>>> freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']>>> [weapon.strip() for weapon in freshfruit]['banana', 'loganberry', 'passion fruit']>>> # create a list of 2-tuples like (number, square)>>> [(x, x**2) for x in range(6)][(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]>>> # the tuple must be parenthesized, otherwise an error is raised>>> [x, x**2 for x in range(6)]  File "
", line 1, in ? [x, x**2 for x in range(6)] ^SyntaxError: invalid syntax>>> # flatten a list using a listcomp with two 'for'>>> vec = [[1,2,3], [4,5,6], [7,8,9]]>>> [num for elem in vec for num in elem][1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> from math import pi>>> [str(round(pi, i)) for i in range(1, 6)]['3.1', '3.14', '3.142', '3.1416', '3.14159']

del   按索引删除

>>> a = [-1, 1, 66.25, 333, 333, 1234.5]>>> del a[0]>>> a[1, 66.25, 333, 333, 1234.5]>>> del a[2:4]>>> a[1, 66.25, 1234.5]>>> del a[:]>>> a[]

del 也可以用来删除变量

>>> del a

 

转载于:https://www.cnblogs.com/wangjixianyun/archive/2012/12/27/2836601.html

你可能感兴趣的文章
同步器之Exchanger
查看>>
IO流
查看>>
专家观点:即使在云中 硬件同样至关重要
查看>>
loadrunner11录制不成功解决方法(收集)
查看>>
jQuery 基础
查看>>
USE平台构件属性无法显示的一种解决办法
查看>>
Cannot open include file: jni.h: No such file or directory解决方法
查看>>
HDU-水饺基情 二维树状数组
查看>>
visual studio 安装Entity framework失败
查看>>
测试对bug如何分析和定位
查看>>
c/c++学习书籍
查看>>
python应用-爬取猫眼电影top100
查看>>
HC-05蓝牙模块基本使用
查看>>
phper必知必会之类库自动加载的七种方式(三)
查看>>
ansible模块介绍
查看>>
NOIP201307货车运输
查看>>
齐次坐标
查看>>
[SQLite]使用记录
查看>>
HttpRequest 类
查看>>
Qt使用信号与槽时出现的错误“Incompatible sender/receiver arguments”
查看>>