Python学习笔记---元组(tuple)、列表(list)、字典(dict)

元组(tuple):

  元组常用小括号表示,即:(),元素加逗号,是元组的标识。

#定义一个元组

#tuple = 'a',

tuple = ('a','b','c','d','e','f','g')

#常规来说,定义了一个元组之后就无法再添加或修改元组的元素,但对元组切片可以添加会修改元组的元素。

print tuple[1:5]

tuple = tuple[:2]+('h')+temp[2:]

print(tuple)

#使用for循环进行遍历元组

for each in tuple:

    print each

#通过range()函数和for循环获取元组内元素的序号

for index in range(len(tuple)):

    print tuple[index]

---元组总结:

1.特性:不可更改的数据序列。【理解:一旦创建元组,则这个元组就不能被修改,即不能对元组进行更新、增加、删除操作

2.创建:一对圆括号“()”和其包含的元素(若没有元素,则为空元组)。

    创建一般元组:即一维元组。如:tempTuple = ("one","two","three",4,5,6)。

    创建嵌套元组:元组中还可以包含元组,即嵌套元组或二维(多维)元组。如:mulTuple = (("you","are","a","dog"),"you","too")。

注:若想创建包含一个元素的元组,则必须在该元素后面加逗号“,”,否则创建的不是一个元组,而是一个字符串。

如:aTuple =("one",),aString = ("one")。type(aTuple) -> "tuple",type(aString) ->"string"。

3.访问:元组名[index],index为元素在元组中的索引,索引为整数,从0开始。注意:index不能越界,否则会报错。

    访问一般元组:tempTuple[0] -> "one",tempTuple[3] -> 4。

    访问嵌套元组:mulTuple[0][1] ->"are"。

注:可以使用负数作为索引来访问元组。-1代表最后一个元素,-2代表倒数第二个,以此类推。如:tempTuple[-1] ->"too"。

可用for循环遍历元组。如:forelementintempTuple: print(elment)。

4.求长:len(元组名)。如len(tempTuple) ->6。(长度也即元组中元素的个数)。

5.打印:print(元组名),可打印元组中的所有元素。

6.类型:type(元组名) ->"tuple"。

7.删除:del 元组名,删除元组,当访问被删除的元组时会报错,提示:元组未定义。(其他类型也可以用此方法)

 列表(list):

  列表常用方括号表示,即:[];

  创建一个列表,只要把用逗号分隔的不同的数据项使用方括号括起来即可。

  例如:

1list1 = ['a','b','c',1,3,5]

2list2 = [1,2,3,4,5,6]

3list3 = ["abc","bcd","cde"]

  遍历列表:(len(each):表示每个迭代变量的长度,each:表示每个迭代的变量)

1list1 = ['a','b','c',1,3,5]

2foreachinlist1

3print(each,len(each))

  列表中常用的函数:

  cmp(list1,list2):比较两个列表的元素


  len(list):返回列表元素个数


  max(list):返回列表元素最大值


  min(list):返回列表元素最小值


  list(tuple):将元组转换为列表


  列表中常用的9个方法:

  list.append(obj):在列表的末尾添加新的对象

  list.count(obj):统计某个元素在列表中出现的次数


  list.extend(list):在列表末尾添加包含多个值的另一个序列,有扩展列表的作用

  list.insert(index,obj):将对象插入列表中的第index元素之前


  list.pop(obj=list[-1]):默认移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 

  list.remove(obj):移除列表中某个值


  list.reverse():将列表中的元素反向排列


  list.sort(function()):将列表进行排序

---列表总结:

1.特性:可更改的数据数列。(区别于元组,可动态增加,删除,更新)

2.创建:一对方括号“[]”和其包含的元素,单个元素可以不加逗号,同元组一样,可以创建嵌套列表。如:tempList = ["one","two","three"]。

3.基本操作及方法:

  (1)访问、遍历、求长、打印、类型等操作同元组

(2)更新:给列表中的元素重新赋值,不可给列表中不存在的元素赋值。如:tempList[2] = 3 ->tempList = ["one","two",3],tempList[3] = "four" ->报错!!!

  (3)删除:删除元素后(若不是最后一个),右边的元素会左移。

    1)del:删除指定元素。如:del tempList[0] ->tempList = ["two","three"]

    2)pop:删除指定位置的元素并返回被删除的元素,默认删除最后一个。如:element = tempList.pop(1) ->element = two,tempList = ["one","three"]。

  (4)增加(插入):

1)append:向列表末尾添加一个元素,参数不能为空,否则报错。如:tempList.append("four") ->tempList = ["one","two","three","four"]。

2)extend:向列表末尾添加多个元素,参数不能为空,不能是int型,可为字符串(当成列表处理,每个字符就是一个元素)、元组、列表。如:

参数为字符串:tempList.extend("str") ->tempList = ["one","two","three","s","t","r"]。

参数为元组或列表:tempList.extend(("four",“five”)) ->tempList = ["one","two","three","four",“five”]。

3)list[index:index] = [value]:向列表list指定的位置index插入一个元素。如:tempList[1:1] = ["add"] -> tempList = ["one","add","two","three"].

      注:更一般的形式:listname[start:end] = 元组/列表/字符串,可插入多个元素.

4.高级操作及方法:

  (1)产生一个数值递增列表:

      1)pList = range(N),产生一个元素值为0~N-1的列表。如:pList = range(10) ->pList = [0,1,2,3,...,9]。

      2)pList = range(sn,en),产生一个元素值为sn~en-1的列表。如:pList =  range(1,5) ->pList = [1,2,3,4]。

      3)pList = range(sn,en,inc),产生一个元素值以inc递增的列表。如:pList = range(1,10,2) ->pList = [1,3,5,7,9]

  (2)固定值初始化:pList = [value for index  in range(N)],产生一个长度为N的列表,元素值都为value.

      如:value = "x",N=10,则pLsit = ["x","x",...,"x"]

    更简单的形式:pList = [value]*N。

  (3)操作符:

    1)"+":两个列表相加,将合成为一个列表。如 pL1 = [1,2],pL2 = [3,4],pL1+pL2 ->[1,2,3,4]

    2)"*":形式:[value]*N。如value="a",N=4,则得到列表["a","a","a","a"]。

    3)del:del pL[index]:删除指定位置的元素。 del pL[sIndex:eIndex]:删除sIndex~eIndex-1位置的元素。

  (4)列表复制:

    1)pL1 = pL:pL1为pL的别名,即pL1和pL实质为同一个列表,修改其中一个列表,另一个列表也随之变化。

        如:pL = [1,2,3],pL1 = pL,pL1[2] = 33,->pL = pL1 = [1,2,33]

    2)pL2 = pL[:]:pL2为pL的一个克隆(或拷贝),即pL2和pL为不同的列表,修改其中一个列表,另一个不会受影响。

  (5)常用方法:

         1)L.append(value):向列表末尾插入一个元素

2)L.insert(index,value):向列表的index位置插入一个元素value。

3)L.pop(index): 从列表中删除指定位置index的元素并返回元素值,默认删除最后一个元素。

4)L.remove(value):删除在列表中第一次出现的元素value。如:pList = [1,2,3,2],pList.remove(2) ->pList = [1,3,2]。

5)L.count(value):返回元素value在列表中出现的次数。

6)L.index(value) :该元素第一次出现的的位置,无则抛异常 。

7)L.extend(list/tuple/string) :向列表末尾插入多个元素。

8)L.sort():排序

    9)L.reverse():倒序

 字典(dict)

  字典是由花括号{}来包含其数据的,花括号内包含键(key)和其对应的值(value),一对键和值成为一个项,键和值用冒号:隔开,项和项之间用逗号,隔开,空字典就是不包含任何项的字典,也可理解为空字典就是花括号内不包含任何内容,直接使用花括号{}表示。

  创建一个字典:

  dict = {'name':'john','age':20,'sex':male}

  备注:键是一个不可变的数据类型

  访问字典:

  由于字典是无序的,访问字典不能通过索引的方式;通过变量名[键名]来访问。

  字典添加项:

  变量名:[新添加的键名] = 新添加的键对应的值


  字典修改项的值:

  变量名:[要修改的键名] = 新值


  字典删除项或值:

  del方法:删除键对应的值,del 变量名[键名];

       删除字典,del 变量名。


  clear方法:清空字典内容。

        变量名.clear()


  pop方法:删除键对应的值,但是它会把对应的值输出后再删除

---字典总结:

1.特性:以名称索引的分组数据。元组和列表以数字顺序索引,而字典的索引可以数字,字母,字符串,符号等。

    在字典中,索引叫做:键,即key,对应的值叫做值,即value。

2.创建:dic = {key1:value1,key2:value2},可先创建空字典dic ={},然后再初始化,如dic["one"] = "firstValue"。

注:键是唯一的,字典只认最后一个赋的键值。如:dic = {1:1,2:2,1:3} ->dic = {1:3,2:2},最后一个元素(1:3)被“舍弃”。

3.访问:dic[key],获得key对应的值,若key不存在,则报错。

4.常用方法和操作:

1)D.get(key, defualtValue):获得key对应的值,若key不存在,则返回设置的默认值defualtValue,若没有设置默认值则返回None。

2)D.has_key(key) :检查字典中是否存在键key,有该键返回TRUE,否则FALSE。

3)D.keys():返回由字典所有键构成的列表。

4)D.values():返回由字典所有值构成的列表。

5)D.items():返回由字典所有键值对构成的列表,即[(key1,value1),(key2,value2),(key3,value3),...]。

6)D.update(dic2):将字典dic2中的元素合并到字典D中。

7)D.popitem():随机删除字典中的一个键值对(一项),并返回值。若字典为空则抛出异常。

8)D.clear():清空字典中的元素并返回None

9)D.pop(key):删除指定键所对应的项,并返回key对应的值。key不能为空,也不默认删除排在最后的元素,因为字典是无序的,注意和列表的区别!!!

10)D.copy():拷贝字典,两个字典不是同一个字典。如d = {1:1,2:2},d1 = d.copy() ->d1 = {1:1,2:2}。

11)cmp(dict1,dict2):比较字典,(优先级为元素个数、键大小、键值大小),第一个大则返回1,第一个小则返回-1,一样大则返回0。

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

推荐阅读更多精彩内容