Python 中有四个非常常用的数据类型,分别是字符串,列表,元组和字典。下面就来介绍这四个基本的数据类型。
字符串
Python 对字符串的处理是非常强的,所以掌握一些 Python 对字符串的基本操作是非常有必要的.
字符串表示
-
赋值
str = 'hello'
-
填字符串
str = "%d little pigs come out or I'll %s and %s and %s" % (3, 'huff', 'puff', 'blow down')
-
转换
pi = 3.14 print 'pi = ' + str(pi)
常用方法
-
大小写转换
str.lower() str.upper()
-
去除首尾空格
str.strip()
-
判断字符里所有的字符是不是字母/数字/空格
str.isalpha() str.isdigit() str.isspace()
-
判断字符串是不是以某个子串开头/结尾
str.startswith(' ') str.endswith()
-
查找子串在字符串中的位置,没找到返回-1
str.find('th')
-
字符串的替换
str.replace('old','new')
-
字符串的分割,返回 list
str.split('delim') 'delim'.join(list)
编码问题
在 Python2 里面默认都是用 unicode 编码的,而 windows 里面的文件默认是 gbk 编码,而 linux 里面的文件默认的是 utf8 编码,所以编码之间的转换是必不可少的.
-
定义unicode字符串
ustr = u'A unicode u018e string xf1'
-
转换utf-8编码
utfstr = ustr.encode('utf-8')
-
转换会unicode编码
unistr = unicode(utfstr, 'utf-8')
练习题
- 基础题: string1.py
- 提升题: string2.py
列表
列表是 Python 里面一个很重要的数据结构,也是非常常用的一个数据结构.
链表的表示
-
初始化
colors = ['red', 'blue', 'green']
-
扩展
# 选择链表fruits中包含字符'a',并全部转换成大写 fruits = ['apple', 'cherry', 'bannana', 'lemon'] # ['APPLE', 'BANNANA'] afruits = [ s.upper() for s in fruits if 'a' in s ]
list 常用方法
-
添加元素
list.append(elem)
-
在i位置添加元素 elem
list.insert(i,elem)
-
将 list2 中的元素添加到 list 中
list.extend(list2)
-
获取元素 elem 的索引号
list.index(elem)
-
删除第一个出现的元素 elem
list.remove(elem)
-
删除第 i 个元素
list.pop(i)
-
给 list 排序
list.sort()
-
颠倒 list
list.reverse()
链表排序
-
sorted 基本方法
a = [5, 1, 4, 3] print sorted(a) ## [1, 3, 4, 5] print sorted(a, reverse=True) ##[5, 4, 3, 1] print a ## [5, 1, 4, 3]
-
sorted 按关键字排序
-
以字符串的长度排序
strs = ['ccc', 'aaaa', 'd', 'bb'] print sorted(strs, key=len) ## ['d', 'bb', 'ccc', 'aaaa'] #len代表len()这个函数
其函数处理细节见下图:
-
以自定义关键字函数排序
# 根据字符串最后一个字符来排序 strs = ['xc', 'zb', 'yd' ,'wa'] # 定义一个函数,输入是一个字符串,返回最后一个字符 def MyFn(s): return s[-1] # 传递key=MyFn作为参数 print sorted(strs, key=MyFn) ## ['wa', 'zb', 'xc', 'yd']
-
练习题
元组
元组就相当于数组.其元素的大小无法改变.
元组表示
-
赋值(用圆圆括号包含元素)
tuple = (1, 2, 'hi') print len(tuple) ## 3 print tuple[2] ## hi
-
更改元素
# 报错,元组元素无法更改 tuple[2] = 'bye' # this works tuple = (1, 2, 'bye')
字典
字典表示
-
赋值
# 可以以{}开始构建空字典,然后以赋值的形式给字典添加键值对 dict = {} dict['a'] = 'alpha' dict['g'] = 'gamma' dict['o'] = 'omega' print dict ## {'a': 'alpha', 'o': 'omega', 'g': 'gamma'}
-
查看和更改元素
print dict['a'] # 查看'a'对应的值 'alpha' dict['a'] = 6 # 给'a'重新赋值 if 'z' in dict: print dict['z'] # 避免报错 print dict.get('z') # None (instead of KeyError)
字典方法
-
获取字典关键字
dict.keys()
-
获取字典值
dict.values()
-
获取字典键值对(返回的是一个元组链表)
dict.items()
-
循环中获取键和值
for k,v in dict.items(): print k, '>', v
-
删除元素(对 list 也适用)
dict = {'a':1, 'b':2, 'c':3} del dict['b'] # 删除'b'元素 print dict ## {'a':1, 'c':3}
字典排序
-
sorted 方法
dict1={'A': 9, 'C': 5, 'B': 1, 'E': 14, 'D': 3, 'G': 3, 'F': 3, 'I': 9, 'H': 7, 'J': 1, 'L': 2, 'O': 8, 'N': 3, 'P': 4, 'S': 10, 'R': 5, 'U': 1, 'T': 17, 'W': 1, 'V': 1} #对字典按值排序,以元组的形式返回 print sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=True) #对字典按键排序,以元组的形式返回 print sorted(dict1.iteritems(),key=lambda dict1:dict1[0],reverse=False)
如果该文章对您产生了帮助,或者您对技术文章感兴趣,可以关注微信公众号: 技术茶话会, 能够第一时间收到相关的技术文章,谢谢!