python字符串元组列表

数据类型

python数据类型包括数值、字符串、列表、元组和字典。

数值

数值类型包括整型、长整型、浮点型和复数型。

1
2
3
4
整型   2
长整型 100L
浮点型 0.0, 12.0, -18.8, 3e+7
复数型(complex) -3.14j, 8.32e-36j

字符串

字符串有3种定义方式

1
2
3
str = 'this is a string'
str = "this is a string"
str = '''this is a string'''

此处的3引号可以是3个单引号,也可以是3个双引号,但不可混用。
字符串是序列的一种,可以通过切片的方式操作。

1
2
3
4
5
6
7
8
9
a = 'abcde'
a[0] = a
a[-1] = e
a[:] = abcde
a[:-1] = abcd
a[::1] = abcde
a[::2] = ace
a[-4:-2] = bc
a[-2:-4:-1] = dc 从右向左取

序列

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

序列的特点

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

    序列的基本操作

    len()

    序列的长度
    1
    2
    3
    In [1]: a = 'abcde'
    In [2]: len(a)
    Out[2]: 5

+

连接2个字符

1
2
3
In [3]: a = 'abcde'
In [4]: a + 'f'
Out[4]: 'abcdef'

*

重复序列元素

1
2
In [9]: '#' * 10
Out[9]: '##########'

in

判断元素是否在序列中

1
2
3
4
5
6
7
In [10]: a = 'abcde'
In [11]: 'a' in a
Out[11]: True
In [12]: 'f' in a
Out[12]: False
In [13]: 'f' not in a
Out[13]: True

max()

返回最大值

1
2
3
4
In [14]: a
Out[14]: 'abcde'
In [15]: max(a)
Out[15]: 'e'

min()

返回最小值

1
2
3
4
In [16]: a
Out[16]: 'abcde'
In [17]: min(a)
Out[17]: 'a'

cmp(x,y)

比较2个序列是否相等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
In [4]: a
Out[4]: 'abcde'

In [5]: cmp(a,'ac')
Out[5]: -1

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

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

In [8]: cmp(a,'ab')
Out[8]: 1

元组

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

定义

使用括号()

1
2
3
4
5
6
7
In [9]: t = ('a',1,(1,))

In [10]: t
Out[10]: ('a', 1, (1,))

In [11]: t[0]
Out[11]: 'a'

元祖操作

见序列

元组的拆分

元组可用于接受函数的返回值。

1
2
3
4
5
6
7
8
9
10
11
12
13
In [14]: t
Out[14]: ('abcde', 'b', 'c')

In [15]: first,second,third = t

In [16]: first
Out[16]: 'abcde'

In [17]: second
Out[17]: 'b'

In [18]: third
Out[18]: 'c'

列表

列表定义

列表使用[]定义。
列表是处理一组有序项目的数据结构;可以在列表中存储一个序列的项目;列表是可变的数据类型。

创建列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
In [1]: list1 = []
In [2]: list1
Out[2]: []
In [4]: list2 = list()

In [5]: list2
Out[5]: []

In [6]: list3 = ['a',1,(2,),['hello','python']]

In [7]: list3
Out[7]: ['a', 1, (2,), ['hello', 'python']]

In [8]: len(list3)
Out[8]: 4

In [9]: list3[0]
Out[9]: 'a'

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

In [11]: len(list3)
Out[11]: 4

In [12]: list3[0]
Out[12]: 'b'

列表的操作

  • 取值
    切片和索引的方式,和字符串的一致。
  • 添加
    list.append()

    1
    2
    3
    4
    5
    6
    7
    In [17]: list2
    Out[17]: []

    In [18]: list2.append('linux')

    In [19]: list2
    Out[19]: ['linux']
  • 删除
    del list[]

    1
    2
    3
    4
    5
    6
    7
    In [24]: list3
    Out[24]: ['b', 1, (2,), ['hello', 'python']]

    In [25]: del list3[-1]

    In [26]: list3
    Out[26]: ['b', 1, (2,)]

list.remove(list[])

1
2
3
4
5
6
7
In [27]: list3
Out[27]: ['b', 1, (2,)]

In [28]: list3.remove(1)

In [29]: list3
Out[29]: ['b', (2,)]

  • 修改
    list[] = x
  • 查找
    var in list

当然,字符串、元组和列表还有一些其他的内置方法,可以通在pycharm中通过定义一个对象,通过对象.方法查看了解。

实例

练习1

  • 将 “123” 转换成整数。

    1
    2
    3
    4
    In [1]: a = int("123")

    In [2]: print a
    123
  • 将 “9999999999999999999” 转换成长整数。

    1
    2
    In [5]: type(b)
    Out[5]: long
  • 将 “3.1415926” 转换成一个浮点数。

    1
    2
    3
    4
    5
    6
    7
    In [6]: c = float("3.1415926")

    In [7]: print c
    3.1415926

    In [8]: type(c)
    Out[8]: float
  • 将 123 转换成一个字符串。

    1
    2
    3
    4
    5
    6
    7
    In [9]: d = str(123)

    In [10]: print d
    123

    In [11]: type(d)
    Out[11]: str
  • 现有以下字符串
    字符串1:” abc deFGh&ijkl opq mnrst((uvwxyz “
    字符串2:” ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(
    &YZ “
    使用字符串的各种方法转换成如下方式
    ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    In [12]: str1=" abc deFGh&*ijkl opq mnrst((uvwxyz "

    In [13]: str2=" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "

    In [14]: str11="".join((filter(lambda x: x.isalpha(), str1))).upper()

    In [15]: str21="".join((filter(lambda x: x.isalpha(), str2))).lower()

    In [16]: print str11
    ABCDEFGHIJKLOPQMNRSTUVWXYZ

    In [17]: print str21
    abcdefghijmnopqklrstuvwxyz

    In [23]: print str11+str21[::-1]
    ABCDEFGHIJKLOPQMNRSTUVWXYZzyxwvutsrlkqponmjihgfedcba

练习2

  • 现有列表
    list1 = [‘XXXX’, ‘b’, 3, ‘c’, ‘&’, ‘a’, 3, ‘3’, 3, ‘aa’, ‘3’, ‘XXXX’]
    list2 = [‘e’, ‘f’, ‘g’]
    要求对其做以下操作:
  1. 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3。
  2. 对list3 做一下几部操作
    1)删除特殊符号。
    2)统计 3 在list3中出现的次数。
    3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)。
    4)对list3排序。
    5)在末尾追加’d’,并把list2追加到list3。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    In [1]: list1 = ['XXXX', 'b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3', 'XXXX']

    In [2]: list2 = ['e', 'f', 'g']

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

    In [4]: print list3
    ['b', 3, 'c', '&', 'a', 3, '3', 3, 'aa', '3']

    In [5]: list3.remove('&')

    In [6]: print list3
    ['b', 3, 'c', 'a', 3, '3', 3, 'aa', '3']

    In [7]: print list3.count(3)
    3

    In [9]: list3=[i for i in list3 if str(i).isalpha()]

    In [10]: print list3
    ['b', 'c', 'a', 'aa']

    In [12]: list3.sort()

    In [13]: print list3
    ['a', 'aa', 'b', 'c']

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

    In [15]: print list3
    ['a', 'aa', 'b', 'c', 'd']

    In [16]: list3.extend(list2)

    In [17]: print list3
    ['a', 'aa', 'b', 'c', 'd', 'e', 'f', 'g']

练习3

  • 现有两个变量
    a = (‘h’,)
    b = (‘h’)
    1)将a和b分别追加到上一题的list3中,观察有什么区别。
    2)将1生成的list3转换成元组(扩展:自己搜索方法)。
    3)打印出只有一个元素’h’的元组,在2中生成的元组中的索引。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    In [2]: a=('h',)

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

    In [4]: list3.append(a)

    In [5]: print list3
    ['a', 'aa', 'b', 'c', 'd', 'e', 'f', 'g', ('h',)]

    In [6]: list3.append(b)

    In [7]: print list3
    ['a', 'aa', 'b', 'c', 'd', 'e', 'f', 'g', ('h',), 'h']
    ##区别在于a是元组,b是字符串
    In [25]: t3=tuple(list3)

    In [26]: print t3
    ('a', 'aa', 'b', 'c', 'd', 'e', 'f', 'g', ('h',), 'h')

    In [28]: t3.index(a)
    Out[28]: 8

Recommended Posts