切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
基础篇4:python基本数据结构-python列表[复制链接]
发表于 2013-1-2 01:22:25 | 显示全部楼层 |!read_mode!
课程内容

列表:


1: 有序的集合


a = [1,2,3,4,5,6];

2: 通过偏移来索引,从而读取数据
a = [1,2,3,4,5,6];
b = [-1]
print b   #6



3: 支持嵌套


b = [[1,2,3],[4,5,6,7,8]]

4: 可变的类型
b = [[1,2,3],[4,5,6,7,8]]
b[0][1] = 7
print b

        #[[1,7,3],[4,5,6,7,8]]






1: 切片:



a = [1,2,3,4,5,6,7]


正向索引 (从左到右进行索引)
print a[0:4:1]        #从第0个到第4个但不包括第四个步长是1,将输出[1,2,3,4]
反向索引 (从右到左进行索引)
print a[-1:-4:-1]        #从-1个到-4个但不包括第-4个步长这里就应该是-1了,将输出[7,6,5]
默认索引 (从左到右进行索引)
print a[1:]        #[2,3,4,5,6,7]
print a[1::2]        #步长为2,将输出[2,4,6]



2: 添加操作:


+ 生成一个新的列表
a = [1,2,3,4,5,6,7];
b = [9,9,9];
print a+b                #[1,2,3,4,5,6,7,9,9,9]


Extend  :接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表


a = [1,2,3,4,5,6,7];
b = [9,9,9];
a.extend(b)
print a;                #[1, 2, 3, 4, 5, 6, 7, 9, 9, 9]

Append :添加任意对象到列表的末端


a = [1,2,3,4,5,6,7];
b = [9,9,9];
a.append(88)
print a;                #[1, 2, 3, 4, 5, 6, 7, 88]

a = [1,2,3,4,5,6,7];
b = [9,9,9];
a.append(b)
print a;                #[1, 2, 3, 4, 5, 6, 7, [9, 9, 9]]

Insert :插入任意对象到列表中,可以控制插入位置。


a = [1,2,3,4,5,6,7];
b = [9,9,9];
a.insert(1,b)        #要插入的位置,要插入的值
print a;                #[1, [9, 9, 9], 2, 3, 4, 5, 6, 7]




3
修改:


修改列表本身只需要直接赋值操作就行。


a = [1,2,3,4,5,6,7];
a[3] = 'python'
print a;                #[1, 2, 3, 'python', 5, 6, 7]


4
删除:


Del :我们通过索引删除指定位置的元素。


a = [1,2,3,4,5,6,7];
del a[4]
print a;                #[1,2,3,4,6,7]

Remove:移除列表中指定值的第一个匹配值。如果没找到的话,会抛异常。
#正常的例子
a = [1,2,3,4,5,6,7];
a.remove(4)
print a;                #[1,2,3,5,6,7]

#抛出异常的例子
a = [1,2,3,4,5,6,7];
a.remove(8)
print a;                #ValueError: list.remove(x): x not in list


Pop:返回最后一个元素,并从list中删除它。




a = [1,2,3,4,5,6,7];
a.pop()
print a;                #[1,2,3,4,5,6]




5
成员关系:

In    not in我们可以判断一个元素是否在列表里。

返回一个bool类型,元素在列表里返回true,否则返回fasle.





a = [1,2,3,4,5,6,7];
print 5 not in a                #false

a = [1,2,3,4,5,6,7];
print 5 in a                #true



6
列表推导式:



[expr for iter_var in iterable]


1: 首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式(注意本例子中没有表达式)中应用该iter_var的内容,最后用表达式的计算值生成一个列表。


比如我们要生成一个包含1到10的列表


#第一种方式
[x for x in range(1,11)]


#第二种方式
Range(1,11)





[expr for iter_var in  iterable if cond_expr]


2: 加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,
最后用表达式的计算值生成一个列表。

如:
要生成包含1到10的所有奇数列表。


#第一种方式
range(1,11,2)                                #注意range也有步长属性,输出[1, 3, 5, 7, 9]
#第二种方式
[x for x in range(1,11) if x % 2 == 1]                #输出[1, 3, 5, 7, 9]





7
排序翻转:sort,reverse



a = [33,11,22,44]

b = a.sort()



这个方式直接修改原列表。他的返回值为none,
所以  

print b 输出的内容是None

;但print a 输出的就是排序后的了
我们直接输出a列表变量


的reverse函数:反转一个list, 他的返回值为none

比如上面的列表a


b = a. reverse()


print b
输出的内容是None



直接看a列表变量能看到翻转的效果。






发表于 2013-1-2 11:23:29 | 显示全部楼层
占位待编辑

代码区

GMT+8, 2020-7-10 10:16

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部