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)," ",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," ",type(c)); 40 print(d," ",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} " 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} ".format(a[0],a[1],a[2]) 67 +"输出a[1]={1} ".format(a[0],a[1],a[2]) 68 +"输出a[2]={2} ".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 #数据多了就还是要靠方法的