python的数据类型
- 数值
- 字符串
- 列表
- 元组
- 字典
- 通过ipython查看数值类型
In [1]: a=456
In [2]: type(a)
Out[2]: int
In [3]: a='shanwu'
In [4]: type(a)
Out[4]: str
2.整数的浮点类型
In [16]: type(3.0/2)
Out[16]: float
3.字符型
In [17]: a='abc'
In [18]: type(a)
Out[18]: str
In [19]: a="abcc"
In [20]: type(a)
Out[20]: str
In [21]: a='hello\nword'
In [22]: a
Out[22]: 'hello\nword'
In [23]: a='''dsfldsjf'''
In [24]: a
Out[24]: 'dsfldsjf'
In [27]: a='''hello
...: world'''
In [28]: a
Out[28]: 'hello\nworld'
In [30]: print(a)
hello
world
字符型的其他用法
In [31]: a='abcdef'
In [32]: a[0]
Out[32]: 'a'
In [33]: a[1]
Out[33]: 'b'
In [34]: a[0]+a[1]
Out[34]: 'ab'
In [35]: a[0:2]
Out[35]: 'ab'
In [36]: a[0:]
Out[36]: 'abcdef'
序列
- 字符串,列表和元组都是序列
- 序列的主要特点是索引操作符和切片操作符
1.字符的使用方法
- len():求序列的长度
- + 连接2个序列
- * 重复序列元素
- in 判断元素是否在序列中
- max() 返回最大值
- min() 返回最小值
- cmp(x,y) 比较两个序列是否相等
In [39]: a='abcdefg'
In [40]: len(a)
Out[40]: 7
In [41]: a +'hijk'
Out[41]: 'abcdefghijk'
In [42]: a * 2
Out[42]: 'abcdefgabcdefg'
In [43]: 'a' in a
Out[43]: True
In [44]: max(a)
Out[44]: 'g'
In [45]: min(a)
Out[45]: 'a'
元组
- 元组的定义和简单使用
- 元组和列表一样不可变
In [48]: t=('1',23,(1,))
In [49]: t[1]
Out[49]: 23
In [50]: t[0]
Out[50]: '1'
In [51]: t[2]
Out[51]: (1,)
In [52]: type(t)
Out[52]: tuple
In [53]: type(t[0])
Out[53]: str
In [54]: type(t[1])
Out[54]: int
In [55]: type(t[2])
Out[55]: tuple
In [56]: a='bcd'
In [58]: t=(a,'ddd','dfdf')
In [59]: t
Out[59]: ('bcd', 'ddd', 'dfdf')
In [60]: aa,bb,cc=t
In [61]: aa
Out[61]: 'bcd'
In [62]: bb
Out[62]: 'ddd'
In [63]: cc
Out[63]: 'dfdf'
In [68]: t.index('ddd') ddd的索引
Out[68]: 1
In [69]: t.count('ddd') ddd的数量
Out[69]: 1
列表
- 列表是处理一组有序项目的数据结构
- 列表的形式和简单操作
In [72]: l=['a',1,(1,2),[4,5,6]]
In [73]: type(l)
Out[73]: list
In [74]: l[0]
Out[74]: 'a'
In [75]: l[1]
Out[75]: 1
In [76]: l[2]
Out[76]: (1, 2)
In [77]: l[2][0]
Out[77]: 1
In [78]: l[2][1]
Out[78]: 2
In [80]: l[3]
Out[80]: [4, 5, 6]
In [81]: l1=['aa',[1,2,4]]
In [82]: l+l1
Out[82]: ['a', 1, (1, 2), [4, 5, 6], 'aa', [1, 2, 4]]
In [83]: (l+l1) * 2
Out[83]:
['a',
1,
(1, 2),
[4, 5, 6],
'aa',
[1, 2, 4],
'a',
1,
(1, 2),
[4, 5, 6],
'aa',
[1, 2, 4]]
- 查看列表的操作类型
In [84]: l.append
l.append l.count l.insert l.reverse
l.clear l.extend l.pop l.sort
l.copy l.index l.remove
In [90]: l
Out[90]: [1, 2, 3, 4, 5, 6, 3, 2]
In [91]: l.remove(2) 删除第一个value
In [92]: l
Out[92]: [1, 3, 4, 5, 6, 3, 2]
In [93]: del l[0]
In [94]: l
Out[94]: [3, 4, 5, 6, 3, 2]
In [95]: l[0]=22 修改value
In [96]: l
Out[96]: [22, 4, 5, 6, 3, 2]
In [97]: 1 in l
Out[97]: False
In [98]: 22 in l
Out[98]: True
In [99]: l.insert(0,22222) 插入元素
In [100]: l
Out[100]: [22222, 22, 4, 5, 6, 3, 2]
In [101]: l.insert(4,22222)
In [102]: l
Out[102]: [22222, 22, 4, 5, 22222, 6, 3, 2]
In [104]: l.sort() 排序
In [105]: l
Out[105]: [2, 3, 4, 5, 6, 22, 22222, 22222]
In [106]: l.reverse() 元素的反转
In [107]: l
Out[107]: [22222, 22222, 22, 6, 5, 4, 3, 2]
In [108]: l.pop() 删除元素
Out[108]: 2
In [109]: l.pop(2)
Out[109]: 22
In [110]: a=range(5)
In [111]: l.extend(a) 追加可迭代的对象
In [112]: l
Out[112]: [22222, 22222, 6, 5, 4, 3, 0, 1, 2, 3, 4]
11-20习题
练习1
- 将 “123” 转换成整数
int('123')
- 将 “9999999999999999999” 转换成长整数
long('9999999999999999999')
- 将 “3.1415926” 转换成一个浮点数
float('3.1415926')
- 将 123 转换成一个字符串
str(123)
- 现有以下字符串
字符串1:" abc deFGh&ijkl opq mnrst((uvwxyz "
字符串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(&YZ "
使用字符串的各种方法转换成如下方式
ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba
''.join([s for s in b if str(s).isalpha()])+''.join([s for s in a if str(s).isalpha()])[::-1]
练习2:
- 现有列表
list1 = [‘XXXX’, ‘b’, 3, ‘c’, ‘&’, ‘a’, 3, ‘3’, 3, ‘aa’, ‘3’, ‘XXXX’]
list2 = [‘e’, ‘f’, ‘g’]
要求对其做以下操作:
- 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
list1[1:-1]
- 对list3 做一下几部操作
- 删除特殊符号
list3=[i for i in list1 if str(i).isalpha() or str(i).isalnum()]
- 统计 3 在list3中出现的次数
list3.count(3)
- 用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)
[i for i in list3 if str(i).isalpha()]
- 对list3排序
list3.sort()
- 在末尾追加’d’,并把list2追加到list3
list3.append('d')
list3.extend(list2)
练习3. 现有两个变量
a = (‘h’,)
b = (‘h’)
- 将a和b分别追加到上一题的list3中,观察有什么区别
list3.append(a)
list3.append(b)
a追加进去是元祖,b追加进去是字符 - 将1生成的list3转换成元组(扩展:自己搜索方法)
tuple(list3)
- 打印出只有一个元素’h’的元组,在2中生成的元组中的索引
tuple(list3).index('h')