Python中的元组和列表

元组

序列

字符串、列表和元组都是序列

序列的两个主要特点是索引操作符和切片操作符.

    • 索引操作符让我们可以从序列中抓取一个特定的项目。
    • 切片操作符让我们能够获取序列的一个切片,即一部分序列。

序列的基本操作:

  • len() :求序列长度

In [1]: a = '1234;5lasdfasdf'

In [2]: len(a)

Out[2]: 15

  • +:连接2个序列(两个str)

In [3]: a = 'hello'

In [4]: b = 'world'

In [5]: print a+b

helloworld

In [6]:

  • *:重复序列元素(*后面根的是int)

In [9]: print a * 3

hellohellohello

In [10]:

  • in:判断元素是否在序列中

In [12]: print a

[1, 3, 3, 5]

In [13]: 3 in a

Out[13]: True

  • max():返回最大值

In [21]: print a

[1, 3, 3, 5]

In [22]: print max(a)

5

  • min():返回最小值

In [21]: print a

[1, 3, 3, 5]

n [23]: print min(a)

1

  • cmp(x,y):比较两个序列是否相等

In [24]: a

Out[24]: [1, 3, 3, 5]

In [27]: b = [1,3,3,5]

In [28]: cmp (a,b)

Out[28]: 0

In [29]: cmp(a,'1,3,3,5')

Out[29]: -1

In [30]: cmp(a,[1,3,3,5])

Out[30]: 0

In [31]: cmp(a[1],a[2])

Out[31]: 0

In [32]: cmp(a[0],a[3])

Out[32]: -1

In [33]: cmp(a[3],a[2])

Out[33]: 1

In [34]:

元组:

元组和列表十分相似

元组和字符串一样是不可以变的。

    • 元组可以存储一系列的值
    • 元组通常用在用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。

In [34]: t = (1,3,5,'a',(1,))

In [35]: type(t)

Out[35]: tuple

In [36]: print t

(1, 3, 5, 'a', (1,))

In [37]:

元组操作:

元组和字符串一样属于序列类型,可以通过索引和切片操作

元组值不可变

无组的拆分

t = (1,2,3)

a,b,c=t

In [150]: t = (1, 3, 5, 'a', (1,))

In [151]: print t

(1, 3, 5, 'a', (1,))

In [39]: t[0]

Out[39]: 1

In [40]: print t

(1, 3, 5, 'a', (1,))

In [41]: t[0] = 2

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-41-29b3302c4f70> in <module>()

----> 1 t[0] = 2

TypeError: 'tuple' object does not support item assignment

In [42]:

元组中引用变量:

In [42]: a

Out[42]: [1, 3, 3, 5]

In [43]: t = (a,'ab')

In [44]: t

Out[44]: ([1, 3, 3, 5], 'ab')

In [45]:

元组切片:

In [44]: t

Out[44]: ([1, 3, 3, 5], 'ab')

In [45]: first,second = t

In [46]: first

Out[46]: [1, 3, 3, 5]

In [47]: second

Out[47]: 'ab'

In [14]: t

Out[14]: (1, 2, 3)

In [15]: t.index(1)

Out[15]: 0

In [16]: t.index(2)

Out[16]: 1

In [17]: t.index(3)

Out[17]: 2

In [18]: t = (1,3,3,2,5)

In [19]: t.index(5)

Out[19]: 4

In [20]: t.count(3)

Out[20]: 2

In [21]: t.count(5)

Out[21]: 1

列表

列表内可变

列表(list)是处理一组有序项目的数据结构,即要以在列表中存储一个序列的项目。

列表显示是可变类型的数据

创建列表:

list1 = []

list2 = [1,3,3,'a']

list3 = list()

In [22]: list1 = []

In [23]: type(list1)

Out[23]: list

In [24]: list

list   list1

In [24]: list2 = list()

In [25]: type(list2)

Out[25]: list

In [26]: list

list   list1  list2

In [26]: list2

Out[26]: []

In [27]: list

list   list1  list2

In [27]: list3 = ['a',1,2,(1,),[1,'a']]

In [28]: list3

Out[28]: ['a', 1, 2, (1,), [1, 'a']]

In [29]: len(list3)

Out[29]: 5

In [30]:

In [30]: list3[-1]

Out[30]: [1, 'a']

In [31]: list3[0]

Out[31]: 'a'

In [37]: list3

Out[37]: ['a', 1, 2, (1,), [1, 'a']]

In [38]: list3[0:3]

Out[38]: ['a', 1, 2]

In [40]: list3[0] = 'b'

In [41]: list3

Out[41]: ['b', 1, 2, (1,), [1, 'a']]

列表操作:

取值:

切片和索引

添加:(append()默认加到最后一个元素)

list.append()

In [85]: list3

Out[85]: ['b', [], (1,), 1]

In [86]: list3[1]

Out[86]: []

In [87]: list3[1].append('abc')

In [88]: list3

Out[88]: ['b', ['abc'], (1,), 1]

追加

In [42]: list3.append(333)

In [43]: list3

Out[43]: ['b', 1, 2, (1,), [1, 'a'], 333]

In [44]:

In [43]: list3

Out[43]: ['b', 1, 2, (1,), [1, 'a'], 333]

In [44]: list2

Out[44]: []

In [45]: list2 = [1111,222,333]

In [46]: list2 + list3

Out[46]: [1111, 222, 333, 'b', 1, 2, (1,), [1, 'a'], 333]

In [47]:

In [52]: (list2 + list3)*2

Out[52]:

[1111,

222,

333,

'b',

1,

2,

(1,),

[1, 'a'],

333,

1111,

222,

333,

'b',

1,

2,

(1,),

[1, 'a'],

333]

In [53]:

删除

del list[]

list.remove(list[])

In [53]: list2

Out[53]: [1111, 222, 333]

In [54]: del list

list   list1  list2  list3

In [54]: del list2[2]

In [55]: list2

Out[55]: [1111, 222]

In [55]: list2

Out[55]: [1111, 222]

In [56]: list2.remove(list2[1])

In [57]: list2

Out[57]: [1111]

修改:

list[] = x

In [74]: list2

Out[74]: [1111, 22222, 2223, 22233434, 33434]

In [75]: list2[0] = 0000

In [76]: list2

Out[76]: [0, 22222, 2223, 22233434, 33434]

In [77]: list2

Out[77]: [0, 22222, 2223, 22233434, 33434]

In [78]: list2.insert(1,66666)

In [79]: list2

Out[79]: [0, 66666, 22222, 2223, 22233434, 33434]

In [80]:

查找:

var in list

In [57]: list2

Out[57]: [1111]

In [58]: 1 in list2

Out[58]: False

In [59]: 1111 in list2

Out[59]: True

In [60]:

排序:

In [90]: list3

Out[90]: ['b', ['abc'], (1,), 1]

In [91]: list3.sort()

In [92]: list3

Out[92]: [1, ['abc'], 'b', (1,)]

In [93]:

反转:

In [93]: list3

Out[93]: [1, ['abc'], 'b', (1,)]

In [94]: list3.reverse()

In [95]: list3

Out[95]: [(1,), 'b', ['abc'], 1]

In [96]:

POP默认删除最后一个,pop删除对应位置.

In [103]: list2

Out[103]: [0, 66666, 22222, 2223, 22233434, 33434]

In [104]: list2.pop(1)

Out[104]: 66666

In [105]: list2

Out[105]: [0, 22222, 2223, 22233434, 33434]

In [106]: list2.pop()

Out[106]: 33434

In [107]: list2.pop()

Out[107]: 22233434

In [108]: list2

Out[108]: [0, 22222, 2223]

In [109]:

迭代:

字符串,元组都是可迭代的,都可以通过for循环去访问。

In [120]: list3

Out[120]: ['b', ['abc']]

In [121]: range(5)

Out[121]: [0, 1, 2, 3, 4]

In [122]: list3.extend(range(5))

In [123]: list3

Out[123]: ['b', ['abc'], 0, 1, 2, 3, 4]

In [125]: list3.extend('5555')

In [126]: list3

Out[126]: ['b', ['abc'], 0, 1, 2, 3, 4, '5', '5', '5', '5']

In [127]: list3.extend('a')

In [128]: list3

Out[128]: ['b', ['abc'], 0, 1, 2, 3, 4, '5', '5', '5', '5', 'a']

In [129]: list3.extend('1234')

In [130]: list3

Out[130]: ['b', ['abc'], 0, 1, 2, 3, 4, '5', '5', '5', '5', 'a', '1', '2', '3', '4']

In [131]:

tab补齐:

    

python 一切都是对象

   

帮助:

help(t.index)

Help on built-in function index:

index(...)

L.index(value, [start, [stop]]) -> integer -- return first index of value.

Raises ValueError if the value is not present.

(END)

异常:

   

练习:

现有列表

list1 = ['XXXX', 'b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']

list2 = ['e', 'f', 'g']

要求对其做以下操作:

1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3

In [8]: list1 = ['XXXX', 'b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']

In [9]: list3 = list1[1:-1]

In [10]: print list3

['b', 3, 'c', 3, '&', 'a', 3, '3', 3, 'aa', '3']

In [11]:

2. 对list3 做一下几部操作

1)删除特殊符号

In [13]: del list3[4]

In [14]: print list3

['b', 3, 'c', 3, 'a', 3, '3', 3, 'aa', '3']

In [15]:

2)统计 3 在list3中出现的次数

In [17]: list3.count(3)

Out[17]: 4

In [18]:

3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)

list3 = list3[0:5:2]

4)对list3排序

In [28]: list3.sort()

In [29]:  print list3

Out[29]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c']

In [30]:

5)在末尾追加'd',并把list2追加到list3

In [30]: list3.append('d')

In [31]:  print list3

Out[31]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd']

In [32]:

In [46]: list2

Out[46]: ['e', 'f', 'g']

In [48]: list3.append(list2)

In [49]: print  list3

Out[49]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd', ['e', 'f', 'g']]

3. 现有两个变量

a = ('h',)

b = ('h')

1)将a和b分别追加到上一题的list3中,观察有什么区别

In [50]: a = ('h',)

In [51]: b = ('h')

In [52]: print  list3

Out[52]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd', ['e', 'f', 'g']]

In [53]: list3.append(a)

In [54]:  print list3

Out[54]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd', ['e', 'f', 'g'], ('h',)]

In [55]: del list3[-1]

In [56]:  print list3

Out[56]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd', ['e', 'f', 'g']]

In [57]: list3.append(b)

In [58]:  print list3

Out[58]: [3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd', ['e', 'f', 'g'], 'h']

In [59]:

2)将1生成的list3转换成元组(扩展:自己搜索方法)

In [73]: t = (list3,)

In [74]: type(t)

Out[74]: tuple

In [75]: print t

([3, 3, 3, 3, '3', '3', 'a', 'aa', 'b', 'c', 'd', ['e', 'f', 'g'], 'h'],)

3)打印出只有一个元素'h'的元组,在2中生成的元组中的索引

print tuple(list3).index(h)

时间: 2024-11-08 00:18:18

Python中的元组和列表的相关文章

Python中的元组,列表,字典

元组中的数据不可更改. 通过一个元组访问另外一个元组 >>> a = ("first","second","third") >>> b = (a,"b's second element") >>> b[0] ('first', 'second', 'third') >>> b[0][1] 'second' 列表中的数据可以更改,也可以追加,如下: >

Python学习笔记#元组和列表的区别

python的基本类型中有元组和列表这么俩个,但是这哥俩却比较难于区分,今天就来用简单的实例说明两者的不同. 列表:1.使用中括号([ ])包裹,元素值和个数可变 实例: aaa = ['sitename','www','pythontab','com'] 元组:1.使用中括号(())包裹,不可以被更改(尽管他们的内容可以) bbb = ['sitename','www','pythontab','com'] 元组可以看成是 只读 的列表 两者都可以通过[:]得到子集,和字符串使用方法相同 下例

Python中的元组

一.元组(tuple) 元组基本上就像一个不可改变的列表.与列表一样支持任意类型的元素.支持嵌套以及常见的序列操作. 元组编写在圆括号中. >>> info = ('林间','Man',1991,7,13,True) #支持不同类型 >>> info = ('林间','Man',(1991,7,13),True) #支持嵌套 >>> info[0] #支持常见的序列操作 '林间' >>> info[:2] #切片 ('林间', 'Ma

python 字符串,元组, 列表,字典之间的转换

#-*-coding:utf-8-*- #1.字典dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'}print type(str(dict)), str(dict) #字典可以转为元组,返回:('age', 'name', 'class')print tuple(dict)#字典可以转为元组,返回:(7,

Python字符串、元组、列表、字典互相转换的方法

#-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type 'str'> {'age': 7, 'name': 'Zara', 'class': 'First'} print type(str(dict)), str(dict) #字典可以转为元组,返回:('age', 'name', 'class') print tuple(dict) #字典可以转为元组,返回

python中的字符串,列表(list),元组,字典(Dictionary)

http://www.runoob.com/python/python-tutorial.html 字符串 var1 = 'Hello World!' 列表(list) list1 = ['physics', 'chemistry', 1997, 2000]; 元组 tup1 = ('physics', 'chemistry', 1997, 2000); 字典(Dictionary) d = {key1 : value1, key2 : value2 }

python中关于元组的操作

元组的基本操作:1.创建一个元组: tuple=(1,26); tuple1=("15","sy"); 创建一个空元组: tuple=(); 元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义: tuple=(50,) 2.访问元组: tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print "tup1[0]: ", tup1[0] p

python - 字符串,元组,列表,字典

# -*- coding: utf-8 -*- """ Created on Sat Jan  7 13:55:45 2017 """ #----------------------定义一个字符串--------------------------- str='  abcd    q' print (str) print (str.capitalize()) #去除字符串两个空格 print (str.strip()) #去除字符串左侧的空格 p

python字符串,元组,列表,集合的基础总结

1.pyhton 的基本数据类型总共有五种分别是整型,长整形(long),浮点型(float),复数类型(complex),布尔型(boolean).使用python编程首先时,不需要声明变量可以直接使用,这就是python语言中比较方便的地方. 下面是几种常用的数据的赋值:整型 a = 10,长整形 b = 10L,浮点型 c = 2.4,复数型 d=1 +1.2j,布尔型 f = True 关于字符串的一些简单理解:首先对于字符串的定义有四种方式分别为a ="mynane", b