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

2015-04-12 14:40:00
admin
原创 3903
摘要: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


四、字符串操作

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

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