【python】入门学习(六)

type() #检查变量或值得数据类型

>>> type(5)
<class 'int'>

 

序列:包括字符串、元组和列表。序列都可以用索引、切片、len()(计算元素个数)、x in s 判断s中是否包含x

元组: 不可变,如果修改需要大量的复制,即彻底重新赋值

空元组: ()

单个元素的元组: (x,)  #注意一定要有','

多个元素的元组: (x, y, z) 或 (x, y, z,) #最后的','可有可无

>>> item = (6, 'apple', (1,2))
>>> item
(6, 'apple', (1, 2))
>>> item[0]
6
>>> item[-1]
(1, 2)
>>> item[-1][0]
1
>>> item = ()
>>> type(item)
<class 'tuple'>
>>> item = (5)
>>> type(item)
<class 'int'>
>>> item = (5,)
>>> type(item)
<class 'tuple'>

删除元组的第一个元素

>>> item = (1,2,3,4,5)
>>> item2 = item[1:]
>>> item = item2
>>> item
(2, 3, 4, 5)

元组相关函数:

x in tup #x是否在元组内

len(tup) #元组中的元素数

tup.count(x) #元素x在元组中出现的次数

tup.index(x) #元组中第一个x的索引,如没有则出错

+*  #拼接

>>> item
(2, 3, 4, 5)
>>> item*2
(2, 3, 4, 5, 2, 3, 4, 5)
>>> item + (1,2,3)
(2, 3, 4, 5, 1, 2, 3)

 

列表:可以改变,用[]括起,单元素的末尾不一定要','

>>> numbers = [1,2,3,4,5,6,7]
>>> numbers
[1, 2, 3, 4, 5, 6, 7]
>>> type(numbers)
<class 'list'>
>>> numbers * 2
[1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7]
>>> numbers[1:]
[2, 3, 4, 5, 6, 7]
>>> numbers[-3:]
[5, 6, 7]
>>> numbers[0]=100
>>> numbers
[100, 2, 3, 4, 5, 6, 7]

列表元素指向相应的值,而不是包含。用自引用说明:

>>> numbers
[100, 2, 3, 4, 5, 6, 7]
>>> numbers[0] = numbers
>>> numbers
[[...], 2, 3, 4, 5, 6, 7]

列表的相关函数:

s.append(x) #在列表s末尾添加元素x

#numnote.py
def numnote(lst):
    msg = []
    for num in lst:
        if num < 0:
            s = str(num) + 'is negative'
        elif 0 <= num <= 9:
            s = str(num) + 'is digit'
        else:
            break
        msg.append(s)
    return msg
>>> import numnote
>>> numnote.numnote([1,-1,2,22])
['1is digit', '-1is negative', '2is digit']

若要逐行打印

>>> for msg in numnote([1,2,3,10]):
    print(msg)

1is digit
2is digit
3is digit
>>> print('\n'.join(numnote([1,2,3,10])))
1is digit
2is digit
3is digit

s.extend() #在末尾添加一个序列

>>> lst = []
>>> lst.extend('cat')
>>> lst
['c', 'a', 't']

s.pop(i) #删除并返回索引为i的元素,默认删除最后一个

>>> lst
['c', 'a', 't']
>>> lst.pop()
't'
>>> lst.pop(0)
'c'
>>> lst
['a']

s.remove(x) #删除s中的第一个x元素,但不返回值

>>> lst
['a', 'h', 'e', 'l', 'l', 'o', ',', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
>>> lst.remove('e')
>>> lst
['a', 'h', 'l', 'l', 'o', ',', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']

s.reverse() #反转列表元素

>>> lst
['a', 'h', 'l', 'l', 'o', ',', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
>>> lst.reverse()
>>> lst
['e', 'n', 'o', 'y', 'r', 'e', 'v', 'e', ',', 'o', 'l', 'l', 'h', 'a']

s.sort() #对元素排序 从小到大 要从大到小排序在调用一次reverse就可以了 也可以对列表中的元组排序

>>> lst
['e', 'n', 'o', 'y', 'r', 'e', 'v', 'e', ',', 'o', 'l', 'l', 'h', 'a']
>>> lst.sort()
>>> lst
[',', 'a', 'e', 'e', 'e', 'h', 'l', 'l', 'n', 'o', 'o', 'r', 'v', 'y']
>>> lst.reverse()
>>> lst
['y', 'v', 'r', 'o', 'o', 'n', 'l', 'l', 'h', 'e', 'e', 'e', 'a', ',']
>>> lst = [(1,2),(1,-1),(2,)]
>>> lst
[(1, 2), (1, -1), (2,)]
>>> lst.sort()
>>> lst
[(1, -1), (1, 2), (2,)]

 

列表解析:用于快速创建列表

>>> [n*n for n in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> [n*n for n in range(1,11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> [2*n**3+4 for n in range(1,11)]
[6, 20, 58, 132, 254, 436, 690, 1028, 1462, 2004]
>>> [c for c in 'pizza']
['p', 'i', 'z', 'z', 'a']
>>> [c.upper() for c in 'pizza']
['P', 'I', 'Z', 'Z', 'A']

使用解析进行筛选:

>>> nums = [-1,0,6,-4,2,5]
>>> result = [n for n in nums if n > 0]
>>> result
[6, 2, 5]

删掉元音

>>> ''.join([c for c in 'Apple' if c.lower() not in 'aeiou'])
'ppl'

不要方括号也可以,将得到生成器表达式

>>> ''.join(c for c in 'Apple' if c.lower() not in 'aeiou')
'ppl'

 

字典:也称关联数组、映射或散列表 用{}表示

可以利用来访问,键不可重复不可修改  下面的'red'就是键,2是值

>>> color = {'red':2, 'blue':1, 'green':3}
>>> color['red']
2
>>> color['blue']=0
>>> color
{'green': 3, 'blue': 0, 'red': 2}

相关函数

items 、 keys、 values、 get、pop、 popitem、 clear、 copy 、fromkeys 、setdefault、 update

#视图
>>> k = color.keys() >>> for i in k:print(i) green blue red

 

集合:只包含键,没有相关联的值

删除列表中重复的元素

>>> lst = [1,1,2,2,3,3,3]
>>> lst
[1, 1, 2, 2, 3, 3, 3]
>>> s = set(lst)
>>> s
{1, 2, 3}

 

posted @ 2014-09-02 20:41  匡子语  阅读(309)  评论(0编辑  收藏  举报