看板Python
标 题Re: [问题] list 的 index
发信站老鼠的香香乳酪洞 (Wed Oct 1 22:13:00 2008)
转信站ptt!ctu-reader!ctu-peer!news.nctu!csnews.cs.nctu!news.cs.nctu!Mouse
※ 引述《[email protected] (Want 2 see u no more)》之铭言:
: list = ["1.jpg","2.jpg","3.bmp"]
: for file in list:
: print "Convert ",file,"to bmp"
: 假设我有一个程式,要把所有jpg转成bmp
首先,转图档可能可以用 convert (ImageMagick 的一个程式)
convert 1.jpg 1.bmp
convert 会自动根据副档名来决定图档格式
如果不想呼叫其它程式,可能要用到 PIL
: 希望顺便把档名list改掉
: 变成
: list = ["1.bmp","2.bmp","3.bmp"]
要将类似 "1.jpg" 改成 "1.bmp" ,可以改虑用 replace
其次,
l=["1.jpg","2.jpg","3.bmp"]
ll=[]
for f in l:
ll.append(f.replace("jpg", "bmp"))
l=ll
另外,如果不介意函数式语言的话,可以用 map
l=map(lambda x: x.replace("jpg", "bmp"), ["1.jpg","2.jpg","3.bmp"])
: 请问这要怎麽写呢?
: 或是,我要怎麽知道我现在在list的第几个位置?
纯粹回答这个问题,有几个方法:
一、用 enumerate
for index, file in enumerate(list):
print u"第 %s 个为 %s"%(index, file)
二、用 while
index=0
while index<len(list):
index+=1
: 谢谢
另外, list 跟 file 是已定义过的,最好不要用来做为变数名,避免误解
list 用来把一个序列(可能是 tuple, list, dict)转成 list
file 则是 open 的同义辞(不过,在 3.0 中只剩 open)
--
※Post by zao from linus.csie.ntu.edu.tw
老鼠的香香乳酪洞˙电子布告栏系统˙alexbbs.twbbs.org˙140.113.166.7