2017-08-01 163 views
-4

我有一個情況蟒蛇長3.6功能

if len(a) = 0 
    a = '' 
if len(b) = 0 
    b = '' 
if len(c) = 0 
    c = '' 

如果len(任何對象)爲零,其聲明爲空。 我必須繼續爲所有的字母做這個。對其進行編碼的最佳方式是什麼?

其他信息:

import test2 
x = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] # a b c are declared in test2 file as a = set()...b = set() ... 
for y, z in enumerate(x): 
    if len(getattr(test2, x[y])) >= 5: 
      setattr(test2, x[y], '') = '' 
    else: 
     pass 

爲什麼我不能SETATTR那裏使用?

+1

如果長度爲0,這是一個字符串,你已經有了一個空字符串。 –

+0

「如果len(任何對象)爲零,則將其聲明爲空」 - 這不會聲明任何內容爲null。你甚至認爲「將它聲明爲空」意味着什麼? – user2357112

+4

爲什麼你有26個單字母變量*以*開頭。改用字典或列表。 –

回答

0

下面的代碼舉例說明了一些可怕的編程習慣,但是我試圖理解你的請求(26個單字母變量,真的嗎?)。

a = "fshdj" 
b = "" 
c = "fshdj" 
d = "fshdj" 
e = "" 
f = "fshdj" 
g = "fshdj" 
h = "fshdj" 
i = "dj" 
j = "fshdj" 
k = "fshdj" 
j = "fsj" 
l = "fshdj" 
m = "fshdj" 
n = "fshdj" 
o = "f" 
p = "fshdj" 
q = "fshdj" 
r = " " 
s = "fshdj" 
t = "fshdj" 
u = "" 
v = "fshdj" 
w = "fshdj" 
x = "fshdj" 
y = "" 
z = "fshdjfshdj" 

alpha = [a , b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z] 

for i in alpha: 
    if len(i) == 0: 
    i = None 
    print i 

Try it here!

+0

爲什麼你的test2文件定義的字母是變量,但它們在你提供的代碼中被你的列表視爲字符串? – Crazed

+0

a -z位於不同的文件中,我將不得不導入它們。那就是我使用getattr和setattr的原因。如果變量在其他文件中,我不確定如何使用。請諮詢 –

+0

問題的背景是什麼?這是一些家庭作業嗎?如果是這樣,請更新您的文章並提供您擁有的所有信息,無論您認爲有用。現在,我們不知道你想要完成什麼以及你需要做什麼。 – Crazed