2013-10-29 18 views
1

下面是我的數據:將正確的兩個字符(如果有)設置爲首都?

Data Here 94/452O 
Data more 94/4522i 
Data bla 94/111 
Data bla 94/459es 
Data bla 94/444 

items由以前的一些代碼自動生成的,但它能夠站出來,如:
items = ["Data Here 94/452O", "Data more 94/4522i", "Data bla 94/111", "Data bla 94/459es", "Data bla 94/444"]

現在,我目前正在追加如下:

"\n".join(items).replace("4ke", "9")與其他一些替代品,但是我希望它用大寫字母而不是小寫字母替換/更改數字末尾的字符...

輸出:

Data Here 94/452O 
Data more 94/4522I 
Data bla 94/111 
Data bla 94/459ES 
Data bla 94/444 

回答

4
items = ["Data Here 94/452O", "Data more 94/4522i", "Data bla 94/111", "Data bla 94/459es", "Data bla 94/444"] 

items = [item[:-2] + item[-2:].upper() for item in items] 

print items 

輸出

['Data Here 94/452O', 'Data more 94/4522I', 'Data bla 94/111', 'Data bla 94/459ES', 'Data bla 94/444'] 
2

使用切片表示法與str.upper

>>> item = "Data bla 94/459es" 
>>> item[:-2] 
'Data bla 94/459' 
>>> item[-2:] 
'es' 
>>> item[-2:].upper() 
'ES' 
>>> item[:-2] + item[-2:].upper() 
'Data bla 94/459ES' 

>>> items = ["Data Here 94/452O", "Data more 94/4522i", "Data bla 94/111", "Data bla 94/459es", "Data bla 94/444"] 
>>> [item[:-2] + item[-2:].upper() for item in items] 
['Data Here 94/452O', 'Data more 94/4522I', 'Data bla 94/111', 'Data bla 94/459ES', 'Data bla 94/444'] 
4

使用regex

>>> import re 
>>> items = ["Data Here 94/452O", "Data more 94/4522i", "Data bla 94/111", "Data bla 94/459es", "Data bla 94/444"] 
>>> for item in items: 
...  print re.sub(r'([a-z]+)$', lambda m:m.group(1).upper(), item) 
...  
Data Here 94/452O 
Data more 94/4522I 
Data bla 94/111 
Data bla 94/459ES 
Data bla 94/444 
2

試試這個,每行。這是最簡單的答案,使用切片:

line = line[:-2] + line[-2:].upper() 

上面假定最多出現兩個字母;請注意0​​對數字沒有任何影響,所以使用它是完全安全的。例如:

line = 'Data bla 94/111' 
line[:-2] + line[-2:].upper() 
=> 'Data bla 94/111' 

line = 'Data bla 94/459es' 
line[:-2] + line[-2:].upper() 
=> 'Data bla 94/459ES' 
2

解決方案沒有正則表達式:

print "\n".join(["%s %s" % (" ".join(x.split()[0:-1]), x.split()[-1].upper()) for x in items]) 

輸出:

Data Here 94/452O 
Data more 94/4522I 
Data bla 94/111 
Data bla 94/459ES 
Data bla 94/444 
相關問題