python字符串操作 正则表达式 集合使用 字典使用 json模块使用

2015-04-12 14:40:00
admin
原创 3447
摘要:python字符串操作 正则表达式 集合使用 字典使用 json模块使用

一、基础说明

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}]

发表评论
评论通过审核之后才会显示。