开始Python -- List和Tuple(2)

原创 2007年10月10日 13:45:00

2List

1 list函数

l         根据String创建List

>>> list('Hello')

['H', 'e', 'l', 'l', 'o']

l         转换字符ListString

''.join(somelist)

2)基本 List操作符

l         改变List

>>> x = [1, 1, 1]

>>> x[1] = 2

>>> x

[1, 2, 1]

l         删除元素:del

>>> names = ['Alice', 'Beth', 'Cecil', 'Dee-Dee', 'Earl']

>>> del names[2]

>>> names

['Alice', 'Beth', 'Dee-Dee', 'Earl']

l         Slice赋值:

>>> name = list('Perl')

>>> name[1:] = list('ython')

>>> name

['P', 'y', 't', 'h', 'o', 'n']

l         使用Slice赋值插入元素:

 

>>> numbers = [1, 5]

>>> numbers[1:1] = [2, 3, 4]

>>> numbers

[1, 2, 3, 4, 5]

l         使用Slice赋值删除元素:

>>> numbers[1:4] = []

>>> numbers

[1, 5]

3 List函数

l         append:追加对象到List结尾

>>> lst = [1, 2, 3]

>>> lst.append(4)

>>> lst

[1, 2, 3, 4]

l         count:统计元素在List中出现的次数

>>> ['to', 'be', 'or', 'not', 'to', 'be'].count('to')

2

l         extend:追加SequenceList结尾

>>> a = [1, 2, 3]

>>> b = [4, 5, 6]

>>> a.extend(b)

>>> a

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

l         相比a + bextend会改变a的结果,而a + b却不会改变a的结果:

>>> a = [1, 2, 3]

>>> b = [4, 5, 6]

>>> a + b

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

>>> a

[1, 2, 3]

l         可以用a = a + b来实现extend的功能,但效率没有extend

l         index:返回List中第一次出现该元素的index值,找不到抛异常

>>> knights = ['We', 'are', 'the', 'knights', 'who', 'say', 'ni']

>>> knights.index('who')

4

>>> knights.index('herring')

Traceback (most recent call last):

  File "<interactive input>", line 1, in ?

ValueError: list.index(x): x not in list

l         insert:插入一个对象到List

>>> numbers = [1, 2, 3, 5, 6, 7]

>>> numbers.insert(3, 'four')

>>> numbers

[1, 2, 3, 'four', 5, 6, 7]

l         可以使用Slice赋值实现相同的功能:

>>> numbers = [1, 2, 3, 5, 6, 7]

>>> numbers[3:3] = ['four']

>>> numbers

[1, 2, 3, 'four', 5, 6, 7]

l         pop:从List中移去一个元素(缺省是最后一个),并返回它

>>> x = [1, 2, 3]

>>> x.pop()

3

>>> x

[1, 2]

>>> x.pop(0)

1

>>> x

[2]

l         可以使用pop()函数实现堆栈功能,虽然Python不提供相应的push函数,但可以使用append()函数实现

l         remove:移去List中遇到的第一个元素(和pop()函数不同,不返回该元素)

>>> x = ['to', 'be', 'or', 'not', 'to', 'be']

>>> x.remove('be')

>>> x

['to', 'or', 'not', 'to', 'be']

l         reverse:反转List中元素

>>> x = [1, 2, 3]

>>> x.reverse()

>>> x

[3, 2, 1]

l         reverse()函数会改变List,如果不想改变List,可以使用reversed()函数;由于reversed()函数返回的不是List,需要用list()函数转换:

>>> x = [1, 2, 3]

>>> list(reversed(x))

[3, 2, 1]

l         sort:对List进行排序,会改变List,但不返回任何值

>>> x = [4, 6, 2, 1, 7, 9]

>>> print x.sort()

None

>>> x

[1, 2, 4, 6, 7, 9]

l         如果不想改变原来的List,可以先拷贝List,再进行排序:

>>> x = [4, 6, 2, 1, 7, 9]

>>> y = x[:]

>>> y.sort()

>>> x

[4, 6, 2, 1, 7, 9]

>>> y

[1, 2, 4, 6, 7, 9]

l         注意,不要使用y = x的赋值,这样会使yx指向同一个List

>>> y = x

>>> y.sort()

>>> x

[1, 2, 4, 6, 7, 9]

>>> y

[1, 2, 4, 6, 7, 9]

l         另一种对拷贝List排序的方法是使用sorted()函数:

>>> x = [4, 6, 2, 1, 7, 9]

>>> y = sorted(x)

>>> x

[4, 6, 2, 1, 7, 9]

>>> y

[1, 2, 4, 6, 7, 9]

l         sorted()函数返回的是List

>>> sorted('Python')

['P', 'h', 'n', 'o', 't', 'y']

l         高级排序:可以以compare(x,y)的形式(x<y时返回负数,x=y时返回0x>y时返回正数)定义自己的比较函数,作为参数传递给sort()函数,下面的例子使用內建的cmp()函数提供缺省的行为:

>>> cmp(42, 32)

1

>>> cmp(99, 100)

-1

>>> cmp(10, 10)

0

>>> numbers = [5, 2, 9, 7]

>>> numbers.sort(cmp)

>>> numbers

[2, 5, 7, 9]

l         按元素的长度排序:

>>> x = ['aardvark', 'abalone', 'acme', 'add', 'aerate']

>>> x.sort(key=len)

>>> x

['add', 'acme', 'aerate', 'abalone', 'aardvark']

l         反转排序(缺省为升序,反转为降序):

>>> x = [4, 6, 2, 1, 7, 9]

>>> x.sort(reverse=True)

>>> x

[9, 7, 6, 4, 2, 1]

 

 

第二章Python的List和Tuples

List 一、创建一个List a_list=['a','b','mp3','z','example'] a_list[0] a a_list[-1] example 1、List是个顺序排列...
  • del1214
  • del1214
  • 2012-01-28 14:02:19
  • 5772

Python技巧——list与字符串互相转换

在Python的编程中,经常会涉及到字符串与list之间的转换问题,下面就将两者之间的转换做一个梳理。1、字符串转换成list命令:list()例子:2、list转换成字符串命令:&quot;&quo...
  • google19890102
  • google19890102
  • 2015-10-19 18:42:33
  • 47047

python List与String 转化问题

现有List如下: a = ['I', 0, 0, 0, 0, 0],注意此时0为整数 现在希望将a转化为string 使用如下语句: str1 = ‘’ str1.join(a[0:]) ...
  • u011089523
  • u011089523
  • 2016-09-18 15:20:41
  • 5239

python 字符串(str)和列表(list)的互相转换

1.str >>>list  str1 = "12345" list1 = list(str1) print list1 str2 = "123 sjhid dhi" list2 = str2.s...
  • roytao2
  • roytao2
  • 2016-12-02 12:12:04
  • 80994

python中的tuples

元组是一个值的有序列表(不可改变)。从很多方面来说,元组和列表都很相似。和列表最重要的不同在于,元组可以在字典中用作键,还可以作为集合的元素,而列表不行。例子如下:d = {(x, x + 1): x...
  • baidu_15113429
  • baidu_15113429
  • 2017-04-25 10:46:48
  • 214

python tuples详细解析

目录 tuples基础 tuples的性质 tuples的使用 tuples的比较 tuple排序 1.tuples基础 tuples是python的数据结构之一,和list很像,也...
  • qq_39422642
  • qq_39422642
  • 2018-01-12 11:01:22
  • 119

Python学习笔记 - List数组和Tuple数组 -2

数组定义ListPython内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 Tuple另一种有序列表叫元组:tuple。tuple和list非常类似,但是...
  • LiHaoYang11
  • LiHaoYang11
  • 2017-02-21 16:30:50
  • 895

Python list和tuple的相互转换

list转为tuple: temp_list = [1,2,3,4,5] 将temp_list进行强制转换:tuple(temp_list) 查看是否转换成功:print type(temp_l...
  • emily_and_cat
  • emily_and_cat
  • 2014-12-12 11:47:42
  • 15296

Python 元组(Tuples)与列表(List)

       Python中Tuples和List都是Sequence数据类型的一种,不同的Tuples的值不能修改,但是我们可以通过拼凑来得到新的元组。          Tuples有个特别的就是...
  • weixin_39730950
  • weixin_39730950
  • 2018-03-13 09:52:49
  • 26

<em>Python</em> for Bioinformatics 第二版,最新版

ter 2 First Steps with <em>Python</em> 19 2.1 INSTALLING <em>PYTHON</em> 20 2.1.1 Learn...<em>TUPLES</em> 49 3.3.1 <em>Tuples</em> Are Immutable Lists 49 3.4 COMMON PROPERTIES OF...
  • 2018年04月07日 00:00
收藏助手
不良信息举报
您举报文章:开始Python -- List和Tuple(2)
举报原因:
原因补充:

(最多只允许输入30个字)