python基础(5)-列表+元组

python的列表我觉得是真的六,为什么呢?你说它是C的数组吧,但是比C的数组可是真的灵活多了,因为列表可以包含不同的元素组成一个列表;

一、列表的创建:

列表的创建有两种方法:

1、直接创建用[]:

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

name=[1,"2",3.0]#可以看出列表的内容完全可以不同的

2、使用list函数创建:

说实话list函数你可以把它看做是一种创建,也可以把它看成是一种类型转换,也就是说,什么都可以转换成为列表,如下:

#将字符串转换成列表

list1 = list("hello")

print(list1)

#将元组转换成列表

tuple1 = ('Python', 'Java', 'C++', 'JavaScript')

list2 = list(tuple1)

print(list2)

#将字典转换成列表

dict1 = {'a':100, 'b':42, 'c':9}

list3 = list(dict1)print(list3)

#将区间转换成列表

range1 = range(1, 6)

list4 = list(range1)print(list4)

运行结果:

['h', 'e', 'l', 'l', 'o']

['Python', 'Java', 'C++', 'JavaScript']

['a', 'b', 'c']#字典转化成列表则是将索引变成了列表

[1, 2, 3, 4, 5] #range是左闭右开

二、删除一个列表

intlist=[1,45,8,34]

del intlist

所以说删除一个列表很简单,就是直接删除它就可以了

三、列表增加一个元素

三种方法,一一列举太麻烦,所以我直接上代码的比较简单:

tmp1 = {'a':2,'b':3}

list_tmp = [5,6,7]

#第一种方法,调用append会把tmp1作为整个字典元素插入到list_tmp的最后面

list_tmp.append(tmp1)

print(list_tmp)

#第二种方法,调用extend会把tmp1的元素拆分成元素插入到list_tmp的最后面,按照上述所说,插入的是“a”,"b";

list_tmp.extend(tmp1)

print(list_tmp)

#第三种方法,调用insert会把tmp1作为整个字典元素插入到list_tmp的最后面

list_tmp.insert(6,tmp1)

print(list_tmp)

运行结果:

[5, 6, 7, {'a': 2, 'b': 3}]

[5, 6, 7, {'a': 2, 'b': 3}, 'a', 'b']

[5, 6, 7, {'a': 2, 'b': 3}, 'a', 'b', {'a': 2, 'b': 3}]

这里面有个坑,就是你不能用insert(-1,xxx)来代表你要插入到最尾,虽然list_tmp[-1]代表的是最后一个列表的元素;如果insert是-1的话,那么插入的是倒数第二个字段;

四、列表删除一个元素

列表删除一个元素有三种方法,也可以理解为3+1,那个1是clear,调用clear会把列表中所有的元素都清除,不过讲到这里,我要说一句很关键的总结性的话,那就是无论是什么样的增删改查,凡是调用的内置函数,比如说,sorted,reversed,或是什么,都是临时的;但是如果是list.式的调用,那可是永久的;后面会讲到;

1、del list[2]#删除第三个元素

2、list.pop(2)#函数删除第三个元素,类似于弹栈的方式

3、list.remove('b')#remove就是可以根据列表的内容进行删除

3、list.clear()#把所有的东西都删除了,变成了一个空的列表

五、列表修改一个元素

修改就更简单了;list[2] = 10;即可;当然也可以用分片的方式:list[2:4:2] = [7,8],具体什么含义你懂得,就是从第三个元素到第5个元素,每隔一个进行一次修改,那么第三个变成了7,第5个变成了8,就是这样的

六、查找列表一个元素

查找一个元素有两种方法,一个是查找位置,一个是查找个数:

1、查找位置

index函数

nums=[40,36,89,2,36,100,7,-20.5,-999]

nums.index (100,4,7)#查找的是100这个元素,从第5个位置,然后查到第8个位置

nums.index(4,7)#查找的是4这个元素,从第8个位置往后

nums.index(100)#查找的是100这个元素,查找的是整个列表

count函数

num.count(100)#查找100出现的次数

七、列表进行排序

那么由上面所述,排序的话,有两种方式:

1、永久排序

list.sort()

2、非永久排序

sorted(list)

八、列表的倒序

那么由上面所述,倒序的话,有两种方式:

1、永久倒序

list.reverse()

2、非永久倒序

reversed(list)

九、列表的循环访问

1、for tmp in list

2、for i in range(1,len(list))

第一种方法,tmp是list的元素,我们遍历的话就会是tmp去当做list中的每一个的元素;第二种方法,得到list的长度,那么i的话,就会是在这个长度里,也就是说,i就是代表的是索引,用i作为角标的话,可以得到list中的元素----->list[i]

十、列表的复制

只要提到复制,那就要讲一讲就是什么是深拷贝,什么是浅拷贝

先说浅拷贝,浅拷贝就是个软连接,就好像是你给它又起了个名字,或者说是个小名;你让这个小名的变量去做一件事,就意味着你让这个大名的变量去做同样的一件事,没有毛病;

那么深拷贝就不一样了;深拷贝就是好比你克隆了一个人,那么就是两个人了;你让真人去打球,那么克隆人完全可以去游泳

所以,有了以下的分类:

1、深拷贝

1)list2 = list1[:]

2)list2 = copy.deepcopy(list1)

这种是深拷贝,深拷贝的话,就是你可以遍历了整个list,或者比如说哈,list2 = list1[2:4],这种分片肯定是深拷贝把,所以list1[:]也是一样的

2、浅拷贝

1)list2 = list1

2)list2 = copy.copy(list1)

这就是浅拷贝了,list2只是list1的小名,你让list2去做什么,list1就做什么,反之也是一样的;这就解释了为什么说,对于python来说,一个变量初始化,未必就给它开辟了真正得到内存;比如说list2,当然名字的保存是肯定开辟内存的,我们说的是列表的内存;

十一、元组

元组其实你可以看做是不能更改的列表,即a = (1,2,3);在创建的时候,就已经注定了a作为元组,里面的元素是无法进行更改的;所以,没有改和删和增等一系列的操作;但是元组有以下的创建方法(除了直接赋值括号这种)

list1 = [1,2,3,4,5,6,7,8,9,0]

tmp3 = tuple(list1)

list1.append(11)

print(list1)

print (tmp3)

这种就是把列表改为了一个元组,我之所以还加了一句list1.append,事项告诉的是,list1在被tuple函数修饰了以后,改变的不是list1,而是tmp3,list1还是可以继续添加元素的;就是这样简单;

至于元组的循环访问,和列表是一样的,这里没有必要再重复一遍;

然后对于元组的删除,可以用del tmp1即可;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342