python字符串操作 正则表达式 集合使用 字典使用 json模块使用
- 2015-04-12 14:40:00
- admin
- 原创 3871
一、基础说明
1、python代码支持中文需要在#!后面添加一行编码说明# -*- coding: cp936 -*-;
2、python不支持++和--操作,需要用+=或者-=去实现,这个是python的简洁设计原则;
3、局部范围修改变量时会生成一个局部变量,意图修改全局变量,需要在函数开头申明全局变量;
4、print末尾加逗号输出不会换行,但会增加一个空格,末尾有换行符号时不会加空格;
5、os.linesep用于跨平台表示换行分隔符,写文件时建议直接用换行符\n;
二、dir函数作用
dir函数用来列出对象定义的标识符,标识符包括类、函数、变量,调试代码时非常有用。
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'os']
>>> print __name__
__main__
三、输入文本raw_input、输入表达式input
>>> s = raw_input('--> ')
--> first input
>>> s
"first input"
input()等价于eval(raw_input())
>>> input()
1+2+3
6
四、字符串操作
1、bool str.startswith(str|tuple),是否以指定字符串开头;
2、str.find(substr),是否包含指定字符串,找不到则返回-1;
3、substr in str,是否包含指定字符串;
4、str.split(sep),分割字符串;
5、re.split(pattern,string),分割字符串;
6、str.replace(old,new),替换所有old字符串;
7、str.translate(None,deletechars),删除指定字符;
字符串拼接:
delimiter = '-'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
五、正则表达式使用
前缀匹配:
match = re.match(r'how', 'how are you')
if match: print match.group(0)
查找匹配:
match = re.search(r'[a-zA-Z0-9_.\\]', '\\', re.IGNORECASE)
if match: print match.group(0)
六、集合使用
数组去重:
def uniqueList(li):
ret = list(set(li))
ret.sort(key=li.index)
return ret
并集和差集:
nameSet1 = set(['allen','bob'])
nameSet2 = set(['candy','bob'])
print nameSet1.union(nameSet2)
print nameSet1.difference(nameSet2)
七、字典使用
1、普通字典不维持元素插入顺序,OrderedDict维持元素插入顺序;
2、字典包含中文打印会出现乱码,需要使用json.dumps打印中文;
字典遍历:
for key,value in mydict.items():
print '%s=%s' % (key,value)
八、json模块使用
1、json在线编辑:bejson.com
2、json.dumps参数说明:
ensure_ascii=False保证中文输出;
sort_keys控制字典排序;
separators控制输出分隔符;
indent控制输出缩进;
# -*- coding: utf-8 -*-
import json
obj = [{'country':'中国','build':1949}]
encodedjson = json.dumps(obj,ensure_ascii=False,sort_keys=True,separators=(',',':'),indent=2)
print type(encodedjson)
print encodedjson
loadedjson = json.loads(encodedjson)
print type(loadedjson)
print loadedjson
输出:
<type 'str'>
[
{
"build": 1949,
"country": "中国"
}
]
<type 'list'>
[{u'country': u'\u4e2d\u56fd', u'build': 1949}]