您的位置:首页 > 编程语言 > Python开发

python系列学习三 —— 数据处理

2013-12-05 10:20 435 查看

1. 排序

1)原地排序(In-place sorting)

    按照指定的顺序排列数据,然后用排序后的数据替换原来的数据,原来的数据会丢失。对于列表,sort()方法提供原地排序。

2)复制排序(Copied sorting)

    按照指定的顺序排列数据,返回数据的一个有效副本,原数据的顺序依然保留。在python中,sorted()支持复制排序。



注:默认地,sort()和sorted()都会按升序都数据排序,若要以降序对数据排序,需要向sort()或sorted()方法传入参数reverse=True,python会负责处理。

2. 推导列表

将一个列表转化为另一个列表需要进行以下4步:

1)创建一个新列表来存放转化后的数据

2)迭代处理原列表中的各个数据项

3)每次迭代时完成转换

4)将转化后的数据追加到新列表

格式:

        new_list = [ {convert item} for item in var_list]



3. 列表分片

var_list[srart:end] 返回列表var_list中从第srart到(不包括)第end项的数据项

4. 用集合删除重复项

python中集合最突出的特性是集合中的数据项是无序的,而且不允许重复。

集合创建:

        distances = set(var_list)

    或distances = {1,2,3,4,5,6,4}



小应用:#!/usr/local/bin/python
# coding=utf-8

# sanitize
def sanitize(var_string):
if '-' in var_string:
sep = '-'
elif ':' in var_string:
sep = ':'
else:
return var_string
(min, sec) = var_string.split(sep)
return min + '.' + sec

#james_list = []
#julie_list = []
#mikey_list = []
#sarah_list = []
try:
with open('james.txt') as james_file, open('julie.txt') as julie_file, open('mikey.txt') as mikey_file, open('sarah.txt') as sarah_file:
james = james_file.readline().strip().split(',')
julie = julie_file.readline().strip().split(',')
mikey = mikey_file.readline().strip().split(',')
sarah = sarah_file.readline().strip().split(',')
#for item in james:
# james_list.append(sanitize(item))
#for item in julie:
# julie_list.append(sanitize(item))
#for item in mikey:
# mikey_list.append(sanitize(item))
#for item in sarah:
# sarah_list.append(sanitize(item))
# sorted() function will return a new sorted list
james_list = sorted(set([sanitize(item) for item in james]))[0:3]
julie_list = sorted(set([sanitize(item) for item in julie]))[0:3]
mikey_list = sorted(set([sanitize(item) for item in mikey]))[0:3]
sarah_list = sorted(set([sanitize(item) for item in sarah]))[0:3]
print james_list
print julie_list
print mikey_list
print sarah_list

#james_unique = []
#for item in james_list:
# if item not in james_unique:
# james_unique.append(item)
#print james_unique[0:3]
except IOError as err:
print 'File error:' + str(err)

小结:

1)sort()方法可以在原地改变列表的排序, sorted()方法通过提供复制排序可以对几乎任何数据结构排序,向sorte()或sorted()传入reverse=True可以按降序排列数据

2)列表推导可以在一行上指定一个转换而不使用迭代

3)要访问一个列表中的多个数据项,可以使用列表分片

4)使用set()方法可以创建一个集合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python