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

python 学习日记(四)

2013-05-13 00:52 316 查看
for 循环使用时的注意点

def getinfo(line,name_list):
# new_list = []
name_list = line.split(",",9)
for each in name_list:
name_list.append(each)
return name_list
a = []

line = 'a,b,g,c,e,f,t,y'
print(getinfo(line,a))


在循环中直接对name_list赋值操作会失败,返回值是一个空值。同样的如果对each操作对name_list也不会有影响

def getinfo(line,name_list):

name_list = line.split(",",9)
for each in name_list:
each = each + " king "

return name_list

a = []

line = 'a,b,g,c,e,f,t,y'
print(getinfo(line,a))


打印结果为:['a', 'b', 'g', 'c', 'e', 'f', 't', 'y']

这个有点像java中的Iterator迭代

需要另外声明一个变量返回:

def getinfo(line,name_list):
new_list = []
name_list = line.split(",",9)
for each in name_list:
new_list.append(each + " king ")

return new_list

a = []

line = 'a,b,g,c,e,f,t,y'
print(getinfo(line,a))


结果:

['a king ', 'b king ', 'g king ', 'c king ', 'e king ', 'f king ', 't king ', 'y king ']

对于需要对list中的成员做操作这种事,python还提供了一个很方便的方法

clean_mikey = [sanitize(each_t) for each_t in mikey]

def sanitize(time_string):
if ":" in time_string:
spliting = ":"
elif "-" in time_string :
spliting = "-"
else :
return time_string
(mins,second) = time_string.split(spliting)
return (mins + "." + second)

with open('c:/Python33/source/james.txt') as info1:
data = info1.readline().strip().split(",")
james = sorted([sanitize(each) for each in data])
unique_james = []
for each in james:
if each not in unique_james:
unique_james.append(each)
print(unique_james[0:3])


在python中的list comprehensions中是没有出去list中的相同元素的功能的,需要自己建立一个循环来实现这个功能

这是也可以借助python中的集合来实现取出重复元素的功能

set(list)

python 集成了很多便的功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: