1 #列表
 2 
 3 #Python中最类似于数组的数据类型
 4 #最简单的创建一个数组的方法就是直接加上一个[]
 5 #和元组加上()一样
 6 
 7 #print(type(1,2,5,6,7));
 8 #这句话虽然语法上没有问题
 9 #但是实际上会报错
10 #因为type最多只能一次性识别1个数据的类型
11 print(type(1));
12 print(type((1,2,5,6,7)));
13 print(type([1,2,5,6,7]));
14 #而从这些输出结果,我们可以的确定通过() []确实是转变成了元组和列表
15 
16 #而通过变量建立一个列表
17 a=[];
18 #这样是最简单是形式,建立了一个空的列表
19 #这就只在栈中间开辟了空间,而没有占用堆的空间
20 b=[10];
21 #而在[]中加上数字就限定了b列表的长度,堆栈中间都开出了空间?
22 #SB
23 #Python是动态的语言,所以不需要设置长度,会动态开辟的 
24 print(type(a),"\n",type(b));
25 #这里输出的结果type(b)后移了一位???
26 
27 #另外我们还可以用方法的形式来生成一个列表
28 #list(1,5,4,8,6,8);
29 #如果我们这样写,还是错的,为什么?
30 #这里其实和之前tuple()的方法很类似
31 c=list((5,4,1,8,8));
32 #这样又是可以的
33 #d=list(1);
34 #这不行的
35 d=list("S");
36 #这样又是可以的
37 #e=list(6.55);
38 #但是这样又是不行的
39 print(c,"\n",type(c));
40 print(d,"\n",type(d));
41 
42 #最后我们得出结论
43 #因为这种方法中不能直接输入数字型数据
44 #我们可以通过利用()[]来将其转成tuple list来完成相对应的操作
45 #补充:官方给出的使用方法是list(iterable)其中iterable是可迭代的,之所以数字数据不行,大概是不可迭代吧
46 #       虽然我很好奇为什么字符串是可迭代的 :(
47 
48 #列表的元素添加和追加元素
49 #虽然我们之前设置了a和b两个列表变量
50 #但实际上他们里面并没有赋值,那么接下来,我们给他进行赋值操作
51 
52 a=["就","这","?"];
53 b=["就这了"];
54 #这里我们就看到了类似于C数组的地方了
55 #以为元组是设置了以后就不能更改了,但是列表却可以更改
56 print("输出a=",a);
57 print("输出a[0]={0}\n"
58       +"输出a[1]={1}"
59       +"输出a[2]={2}".format(a[0],a[1],a[2]));
60 #我们在使用上面这个式子输出的时候会发现
61 #{0}和{1}两个占位符都失效了
62 #为什么呢?
63 #其实{}作为占位符时,是要有方法来调用的
64 #而这里“+”的存在虽然输出出来来看是一个字符串
65 #但是当你使用的时候调用方法则是只对最后一个调用了方法
66 print("输出a[0]={0}\n".format(a[0],a[1],a[2])
67       +"输出a[1]={1}\n".format(a[0],a[1],a[2])
68       +"输出a[2]={2}\n".format(a[0],a[1],a[2]));
69 #而如果这个样子的话,就对应清楚了
70 
71 #再继续讲追加元素的list方法
72 #append()用于追加单个元素
73 #extend()用于追加列表
74 
75 b.append("老阴阳人了");
76 a.extend(b);
77 print("new_b=",b);
78 print("new_a=",a);
79 #可以看到这里b最后追加了一个元素,而a最后则是追加了一个数组
80 #而追加元素还有一种更加简单的办法
81 a=a+["一个➕可以解决问题"+"你还在装什么?",5,"其实我才是独立的一句话"];
82 print("new_a_2",a);
83 #这样,一个➕问题就解决啦(笑)
84 #但是这只是简单的时候可以使用
85 #数据多了就还是要靠方法的

 

悟已往之不谏,知来者之可追