python的序列

Python的序列

序列包括三种:字符串,列表,元组
序列的主要特点是:索引操作符合切片操作符

1,索引操作符
通过下标找出序列的值

a是字符串‘abcde’
In [14]: a
Out[14]: 'abcde'
找到下标是0的值
In [15]: a[0]
Out[15]: 'a'
找到下标是3的值
In [16]: a[3]
Out[16]: 'd'

2,切片操作符
通过切片能找出其中的一串

切片,从头到尾
In [19]: a[:]
Out[19]: 'abcde'
切片,取下标从1到4,4不取
In [20]: a[1:4]
Out[20]: 'bcd'
切片。取下标从0到4,4不取
In [21]: a[:4]
Out[21]: 'abcd'
切片。取下标从0到4,4不取
In [22]: a[0:4]
Out[22]: 'abcd'
切片,从头到尾,隔2取1
In [23]: a[::2]
Out[23]: 'ace'
切片,从头取到倒数第一个,最后一个不取
In [24]: a[:-1]
Out[24]: 'abcd'
切片,从-1取到-2,-2不取
In [25]: a[-2:-1]
Out[25]: 'd'
切片,切片,从尾取到头
In [26]: a[::-1]
Out[26]: 'edcba'

字符串

字符串,赋值的时候用‘’或“”或三‘’括起来

In [1]: a = 'abcde'

字符串的操作

len()  : 求字符串长度
+  :连接两个字符串
*   :重复字符串元素
in   :判断元素是否在字符串中
max()  : 返回字符串中的最大值
min()  : 返回字符串中的最小值
cmp(x,y)   : 比较两字符串的大小,x=y,返回0,x<y,返回-1,x>y,返回1

In [1]: a = 'abcde'

In [2]: a
Out[2]: 'abcde'

In [3]: a + 'f'
Out[3]: 'abcdef'

In [4]: len(a)
Out[4]: 5

In [5]: a
Out[5]: 'abcde'

In [6]: a * 2
Out[6]: 'abcdeabcde'

In [7]: 'a' in a
Out[7]: True

In [8]: max(a)
Out[8]: 'e'

In [9]: min(a)
Out[9]: 'a'

In [10]: cmp(a,'abcde')
Out[10]: 0

In [11]: cmp(a,'abcdef')
Out[11]: -1

In [12]: cmp(a,'abcd')
Out[12]: 1

元组

元组和字符串一样,是不可变的,不能将里面的重新赋值
元组用()表示
当元组只有一个元素时,需要加上,才能表示元组

例:

In [34]: t1 = (1,2,3)

In [35]: t1
Out[35]: (1, 2, 3)

In [36]: print t1
(1, 2, 3)

In [37]: type(t1)
Out[37]: tuple

In [38]: t1 = (1)

In [39]: type(t1)
Out[39]: int

In [40]: t1=(1,)

In [41]: type(t1)
Out[41]: tuple

元组的取值也是通过下标来取

In [42]: t = (a,'b','c')
In [47]: t[1]
Out[47]: 'b'

In [48]: t[0]
Out[48]: 'abcde'

元组的方法
count:判断所给的值是否在元组里面,在返回1,不在返回0

In [42]: t = (a,'b','c')

In [46]: t.count('b')
Out[46]: 1
In [51]: t.count(a)
Out[51]: 1

In [52]: t.count('a')
Out[52]: 0

index:判断所给的值所在元组的下标,在,返回下标,不在,返回错误

In [53]: t.index(b)
-------------------------------------------------------------------------
NameError                               Traceback (most recent call last)
<ipython-input-53-d60c36dee4f9> in <module>()
----> 1 t.index(b)

NameError: name 'b' is not defined

In [54]: t.index('b')
Out[54]: 1

In [55]: t.index('c')
Out[55]: 2

列表

列表是可变类型的有序的数据结构
列表用[]来定义

创建列表:
1,通过手动创建

手动创建空列表
In [56]: list1 = []

In [57]: type(list1)
Out[57]: list
手动创建列表,并给列表赋值
In [58]: list2 = [1,'a','b',['hello','python'],(1,)]

In [59]: type(list2)
Out[59]: list

In [60]: list2
Out[60]: [1, 'a', 'b', ['hello', 'python'], (1,)]

2,通过list函数创建列表

In [61]: list3 = list()

In [62]: type(list3)
Out[62]: list

In [63]: list3
Out[63]: []

列表操作

取值,通过切片和索引

In [58]: list2 = [1,'a','b',['hello','python'],(1,)]
In [64]: list2[1]
Out[64]: 'a'
In [66]: list2[:3]
Out[66]: [1, 'a', 'b']
  • 添加
    通过append方法添加
    append(…)
    L.append(object) – append object to end
    添加对象,从最后添加

      In [85]: list2
      Out[85]: ['b', 'b', ['hello', 'python'], (1,)]
      通过append方法,从最后添加
      In [86]: list2.append(1)
      
      In [87]: list2
      Out[87]: ['b', 'b', ['hello', 'python'], (1,), 1]
    

    通过insert方法添加
    insert(…)
    L.insert(index, object) – insert object before index
    添加对象,从所给下标处添加

      In [92]: list2
      Out[92]: ['b', 'b', ['hello', 'python'], (1,), 1, 'a']
      添加对象,从下标为1位置添加
      In [93]: list2.insert(1,'a')
      
      In [94]: list2
      Out[94]: ['b', 'a', 'b', ['hello', 'python'], (1,), 1, 'a']
    

    通过extend方法添加
    extend(…)
    L.extend(iterable) – extend list by appending elements from the iterable
    添加一个可迭代的,可迭代的可以指字符串,元组,列表,凡是可迭代的都可以通过遍历for访问

      In [112]: list3
      Out[112]: [(1,), 'b', 'b', 'a', 'a', ['hello', 'python']]
      
      In [113]: list3.extend(range(5))
      
      In [114]: list3
      Out[114]: [(1,), 'b', 'b', 'a', 'a', ['hello', 'python'], 0, 1, 2, 3, 4]
    
  • 删除
    通过list方法remove来删除
    remove(…)
    L.remove(value) – remove first occurrence of value.
    Raises ValueError if the value is not present.
    删除第一个可以找到的值,如果值不存在,就抛出一个异常

      list2的值
       In [70]: list2
      Out[70]: [1, 'a', 'b', ['hello', 'python'], (1,), 1]
      
      删除一个1
      In [71]: list2.remove(1)
      
      In [73]: list2
      Out[73]: ['a', 'b', ['hello', 'python'], (1,), 1]
    
      删除2时跑了一个异常
      In [72]: list2.remove(2)
      -------------------------------------------------------------------------
      ValueError                              Traceback (most recent call last)
      <ipython-input-72-88aa77195043> in <module>()
      ----> 1 list2.remove(2)
      
      ValueError: list.remove(x): x not in list
    

    通过del来删除

      In [73]: list2
      Out[73]: ['a', 'b', ['hello', 'python'], (1,), 1]
      
      通过del来删除下标为4的值
      In [74]: del list2[4]
      
      In [75]: list2
      Out[75]: ['a', 'b', ['hello', 'python'], (1,)]
      当然,del还能删除变量
    
  • 修改
    通过下标来修改值

      In [77]: list2
      Out[77]: ['a', 'b', ['hello', 'python'], (1,)]
      
      通过下标来修改下标为0的值
      In [78]: list2[0]='b'
      
      In [79]: list2
      Out[79]: ['b', 'b', ['hello', 'python'], (1,)]
    
  • 查找
    通过in 和not in 来判端元素在不在列表里面

    In [79]: list2
    Out[79]: [‘b’, ‘b’, [‘hello’, ‘python’], (1,)]
    In [81]: ‘b’ in list2
    Out[81]: True

    In [82]: 'c’in list2
    Out[82]: False

    In [83]: ‘b’ not in list2
    Out[83]: False

list的其他方法

sort方法:列表排序
sort(…)
L.sort(cmp=None, key=None, reverse=False) – stable sort IN PLACE;
cmp(x, y) -> -1, 0, 1

	In [99]: list3
	Out[99]: ['b', 'a', 'b', ['hello', 'python'], (1,), 1, 'a']
	In [101]: list3.sort()
	
	In [102]: list3
	Out[102]: [1, ['hello', 'python'], 'a', 'a', 'b', 'b', (1,)]

reverse方法:翻转元素
reverse(…)
L.reverse() – reverse IN PLACE

	In [104]: list3
	Out[104]: [1, ['hello', 'python'], 'a', 'a', 'b', 'b', (1,)]
	In [106]: list3.reverse()
	
	In [107]: list3
	Out[107]: [(1,), 'b', 'b', 'a', 'a', ['hello', 'python'], 1]

pop方法:删除一个元素并返回值,如果没有下标,就抛出异常
pop(…)
L.pop([index]) -> item – remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.

In [109]: list3
Out[109]: [(1,), 'b', 'b', 'a', 'a', ['hello', 'python'], 1]

In [110]: list3.pop()
Out[110]: 1

In [111]: list3
Out[111]: [(1,), 'b', 'b', 'a', 'a', ['hello', 'python']]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值