Python学习(一)List
Python 和 Django
按照博主Hongten的记录学习一遍,Hongten博主地址
python安装教程:python安装教程
Django安装教程:Django安装教程
列表运行示例:
1
1 >>> def create_empty_list(): 2 return [] 3 4 >>> def create_common_list(): 5 return ['a','b','c',1,3,5] 6 7 >>> def create_common_list2(): 8 return [x for x in range(1,10)] 9 10 >>> def str_to_list(s): 11 if s != None: 12 return list(s) 13 else: 14 return [] 15 16 17 >>> def main(): 18 test_listA = create_empty_list() 19 print(test_listA) 20 print('#'*50) 21 test_listB = create_common_list() 22 print(test_listB) 23 print('#'*50) 24 test_listC = create_common_list2() 25 print(test_listC) 26 print('#'*50) 27 test_str = ' i want to talk' 28 test_listD = str_to_list(test_str) 29 print(test_listD) 30 31 32 >>> if __name__ == '__main__': 33 main ()
2
>>> counter = 100 >>> miles = 1000.0 >>> name = "minglang" >>> numberA,numberB,nameC = 1,2,"Minglang" >>> list = [counter,miles,name,numberA,numberB,nameC] >>> print (list) [100, 1000.0, 'minglang', 1, 2, 'Minglang'] >>> #注释用"#" >>> for element in list: print(element) 100 1000.0 minglang 1 2 Minglang >>> print (list[0]) #获取列表list里的第一个元素值 100 >>> print (list[-1]) #获取列表list最后一个元素 Minglang >>> print (len(list)) #获取list列表的长度 >>> num_inc_list = range(10)#range(10)产生一个从0到9数值递增的列表 >>> print (num_inc_list) range(0, 10) >>> for inc_list in num_inc_list: print(inc_list) 0 1 2 3 4 5 6 7 8 9 >>>
3、用固定值初始化一个列表
#下面是用一个固定值initial_value去初始化一个列表myList
1 >>> initial_value = 10 2 >>> list_length = 5 3 >>> myList = [initial_value for i in range(10)] 4 >>> print(myList) 5 [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
#用myList = myList * list_length去复制myList
1 >>> list_length = 2 2 >>> myList = myList * list_length 3 >>> print(myList) 4 [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10] 5 >>> copyList = [1,2,3,"minglang"] 6 >>> copyList = copyList * list_length 7 >>> print(len(copyList)) 8 8 9 >>> for c1 in copyList: 10 print(c1) 11 12 13 1 14 2 15 3 16 minglang 17 1 18 2 19 3 20 minglang
#在一个list中可以包含不同类型的元素,这个和ActionScript 3.0(AS3.0)中的数组类似
>>> test_list = ["hello",1,2,"world",4,5,"hongten"] >>> print(len(test_list)) 7
#打印第一个或最后一个元素
>>> test_list = ["hello",1,2,"world",4,5,"hongten"] 77 >>> print(len(test_list)) 78 7 79 >>> print(test_list[0]) # 打印test_list 80 hello 81 >>> #打印test_list中的第一元素 82 >>> print(test_list[-1]) #打印test_list中最后一个元素 83 hongten 84 >>> print(test_list[-len]) #打印第一个元素,出错! 85 Traceback (most recent call last): 86 File "<pyshell#44>", line 1, in <module> 87 print(test_list[-len]) #打印第一个元素 88 TypeError: bad operand type for unary -: 'builtin_function_or_method' 89 >>> print(test_list[-len(test_list)]) #打印第一个元素 90 hello 91 >>> print(test_list[len(test_list) - 1]) #打印最后一个元素 92 hongten
#追加、插入、删除元素
1 >>> test_list.insert(1,0) 2 97 >>> print(test_list) 3 98 ['hello', 0, 1, 2, 'world', 4, 5, 'hongten', 6] 4 99 >>> #上面的操作是向列表test_list的小标为1的地方插入元素0 5 100 >>> test_list.insert(1,0) 6 101 >>> print(test_list) 7 102 ['hello', 0, 0, 1, 2, 'world', 4, 5, 'hongten', 6] 8 103 >>> test_list.insert(2,1)#插到到下标为2处一个1,原2处的元素后移 9 104 >>> print(test_list) 10 105 ['hello', 0, 1, 0, 1, 2, 'world', 4, 5, 'hongten', 6] 11 106 >>> print(test_list.pop(0)) #返回下标为0的元素,并从test_list中删除之 12 107 hello 13 108 >>> print(test_list) 14 109 [0, 1, 0, 1, 2, 'world', 4, 5, 'hongten', 6] 15 110 >>> print(test_list.pop(2)) #pop(index)的操作是返回数组下标为index的元素,并从列表中删除之 16 111 0 17 112 >>> print(test_list) 18 113 [0, 1, 1, 2, 'world', 4, 5, 'hongten', 6] 19 114 >>> test_list.remove(1) 20 115 >>> print(test_list) 21 116 [0, 1, 2, 'world', 4, 5, 'hongten', 6] 22 117 >>> #remove(1)表示的是删除第一次出现的元素1 23 118 >>> test_list.insert(0,1) 24 119 >>> print(test_list) 25 120 [1, 0, 1, 2, 'world', 4, 5, 'hongten', 6] 26 121 >>> test_list.remove(1) 27 122 >>> print(test_list) 28 123 [0, 1, 2, 'world', 4, 5, 'hongten', 6]
#统计元素个数
1 >>> test_list.insert(2,"hongten") 2 125 >>> print(test_list) 3 126 [0, 1, 'hongten', 2, 'world', 4, 5, 'hongten', 6] 4 127 >>> test_list.count("hongten") 5 128 2 6 129 >>> #count(var)是统计var元素在列表中出现的个数 7 130 >>> test_list.count("foo") 8 131 0
#元素追加
1 >>> #使用extend(list)作用是追加一个list到源list上面 2 >>> test_list_extend = ["a","b","c"] 3 133 >>> test_list.extend(test_list_extend) 4 134 >>> print(test_list) 5 135 [0, 1, 'hongten', 2, 'world', 4, 5, 'hongten', 6, 'a', 'b', 'c'] 6 7 >>> test_list_extend.append("h") 8 9 >>> list_a = ["e","z","o","r"] 10 149 >>> list_a.extend(test_list_extend) 11 150 >>> print(list_a) 12 151 ['e', 'z', 'o', 'r', 'a', 'b', 'c', 'h']
#删除操作
>>del list_b[0,2] 错误
>>del list_b[0:2] 正确
1 >>> #del list[index]删除下标为index的元素,del list[start:end]删除从start下标开始到end下标结束的元素 2 >>> print(list_b) 3 [1, 2, 3, 4, 5, 6] 4 >>> print(del list_b[1]) #出错 5 SyntaxError: invalid syntax 6 >>> del list_b[1] 7 >>> print(list_b) 8 [1, 3, 4, 5, 6] 9 >>> del list_b[0:2] 10 >>> print(list_b) 11 [4, 5, 6] 12 13 >>> #删除的下标超出了列表的长度范围,就会报错 14 >>> del list_b[10] 15 Traceback (most recent call last): 16 File "<pyshell#42>", line 1, in <module> 17 del list_b[10] 18 IndexError: list assignment index out of range
#列表的复制
1 >>> list_c = range(5); 2 >>> for c in list_c: 3 print(c) 4 5 6 0 7 1 8 2 9 3 10 4 11 >>> list_d = list_c 12 >>> for d in list_d: 13 print(d) 14 15 16 0 17 1 18 2 19 3 20 4 21 >>> #上面是列表的复制 22 23 24 >>> list_d[2]=23 25 Traceback (most recent call last): 26 File "<pyshell#53>", line 1, in <module> 27 list_d[2]=23 28 TypeError: 'range' object does not support item assignment 29 >>> list_e = [1,2,3,4,5] 30 >>> list_f = list_e 31 >>> list_f[2] = 234 32 >>> print(list_e) 33 [1, 2, 234, 4, 5] 34 >>> #从这里我们可以知道,list_f复制了list_e,list_f是对list_e的一个引用, 35 >>> #他们共同指向一个对象:[1,2,3,4,5],当我们视图修改list_f[2]的值的时候, 36 >>> #list_f所指向的对象的行为发生了变化,即元素值发生了变化,但是他们的引用是没有 37 >>> #发生变化的。所以list_e[2] = 234也是在情理之中。
1 >>> list_i = list_e[:] 2 >>> print(list_i) 3 [1, 2, 234, 4, 5] 4 >>> print(list_e) 5 [1, 2, 234, 4, 5] 6 >>> list_i[2] = 3 7 >>> print(list_e) 8 [1, 2, 234, 4, 5] 9 >>> print(list_i) 10 [1, 2, 3, 4, 5] 11 >>> #上面是进行了列表的克隆操作,即拷贝了另一个列表,这样的操作,会创造出新的一个列表对象 12 >>> #使得list_i和list_e指向不同的对象,就有着不同的引用,所以当list_i[2] = 3的时候, 13 >>> #list_e[2]还是等于234,即不变