python字符串操作 正则表达式 集合使用 字典使用 json模块使用
- 2015-04-12 14:40:00
- admin
- 原创 3447
一、基础说明
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
四、字符串操作(startswith,in,find,join)
name = 'Swaroop'
if name.startswith('Swa'):
print 'Yes, the string starts with "Swa"'
if 'a' in name:
print 'Yes, it contains the string "a"'
if name.find('war') != -1:
print 'Yes, it contains the string "war"'
delimiter = '--'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
五、正则表达式使用(compile,match,search,group)
import re
pattern = re.compile(r'hello')
match = pattern.match('hello world!')
if match: print match.group(0)
match = pattern.search('prefix hello world!')
if match: print match.group(0)
六、集合使用
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}]