python学习(一)
注意:split是字符串操作的函数,列表没有该函数。
python中,万物皆对象。python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。
python中,对象分为可变(mutable)和不可变(immutable)两种类型。
元组(tuple)、数值型(number)、字符串(string)均为不可变对象,而字典型(dictionary)和列表型(list)的对象是可变对象。
1 >>>a = 1 #将名字a与内存中值为1的内存绑定在一起 2 >>>a = 2 #将名字a与内存中值为2的内存绑定在一起,而不是修改原来a绑定的内存中的值,这时,内存中值为1的内存地址引用计数-1,当引用计数为0时,内存地址被回收 3 >>>b = a #变量b执行与a绑定的内存 4 >>>b = 3 #创建一个内存值为3的内存地址与变量名字b进行绑定。这是a还是指向值为2的内存地址。 5 >>>a,b 6 >>>(2,3)
列表数据类型还有其它一些方法。下面是列表对象的所有方法:
-
insert(i, x) ---- 在指定位置插入一项。第一自变量是要在哪一个元素前面插入,用下标表示。例如,a.insert(0, x)在列表前面插入,a.insert(len(a), x)等价于a.append(x) 。 append(x) ---- 等价于a.insert(len(a), x) index(x) ---- 在列表中查找值x然后返回第一个值为x的元素的下标。没有找到时出错。 remove(x) ---- 从列表中删去第一个值为x的元素,找不到时出错。 sort() ---- 对列表元素在原位排序。注意这个方法改变列表,而不是返回排序后的列表。 reverse() ---- 把列表元素反序。改变列表。 count(x) ---- 返回x在列表中出现的次数。
列表的翻转:
1 #coding:utf-8 2 #可以用于屏幕翻转。像素调整 3 4 l1 = [[1,2,3,11],[4,5,6,12],[7,8,9,13],[23,24,15,0]] 5 l2 = [] 6 7 col2 = [] 8 lengthx = len(l1) 9 lengthy = len(l1[0]) 10 for j in range(lengthy): 11 col2 = [i[j] for i in l1] 12 l2.append(col2) 13 print l2
像素调整(图片压缩)
1 l1 = [[1,2,3,11],[4,5,6,12],[7,8,9,13],[23,24,15,0]] 2 l3 = [] 3 y = len(l1[0]) 4 x = len(l1) 5 for j in range(0, y-1, 2): 6 col = [] 7 for i in range(0, x-1, 2): 8 col.append(l1[j][i]) 9 print col 10 l3.append(col) 11 print l3
求两个列表的交集
1 >>> l1 = [1,2,3,4] 2 >>> l2 = [4,5,6,7] 3 >>> set(l1) & set(l2) 4 set([4]) 5 >>> list(set(l1) & set(l2)) 6 [4]