增加網址:
文章備註、標題(會記錄下來,但是暫時不會顯示):
[綜合]無題 無名 ID:N33d1Ebc 2020/02/29(六) 21:03:12.180 No.17728138
回覆: >>17728195
評分:0, 年:0, 月:0, 週:0, 日:0, [+1 / -1] 最後更新:2020-03-08 13:30:11
附圖
我菜比巴啦 剛練習python一個禮拜
請問碰到大量重複性code 需要更改變量名稱時要怎麼做?
比方說我要寫這樣一段:
xxx_2 = list( xxx_1.values())
xxx_3 = xxx_2[1]
xxx_4 = float(xxx_3)

xxx可能是atk.agi.dex...等等各種名稱
只想到用取代的方法慢慢key 但是變數實在太多了
愈想愈覺得這樣搞太蠢
無題 無名 ID:/NAAC/cY 2020/02/29(六) 21:04:19.557 No.17728150
>變量
無題 無名 ID:XwfJWrd. 2020/02/29(六) 21:05:40.191 No.17728163
xxx_2 = float(list(xxx_1.values())[1])
無題 無名 ID:Qlc94pKE 2020/02/29(六) 21:06:37.513 No.17728167
回覆: >>17728230
唉~~
python有比較好找工作嗎?
想放棄C++了
無題 無名 ID:yZ.aaqm6 2020/02/29(六) 21:07:41.573 No.17728178
附圖
>>17728163
其實這樣寫效率不會比較好
因為同樣需要4個變數來儲存資料
只是可讀性變差
無題 無名 ID:qiEJ1M6w 2020/02/29(六) 21:09:34.013 No.17728195
>>17728138
用專業一點的編輯器
都能幫你改變數名稱
無題 無名 ID:XwfJWrd. 2020/02/29(六) 21:09:49.989 No.17728196
回覆: >>17728286
還是你指這樣
[aa]
def func(xxx):
xxx_2 = list(xxx.values())
xxx_3 = xxx_2[1]
xxx_4 = float(xxx_3)
return xxx_2, xxx_3, xxx_4
a2, a3, a4 = func(a1)
b2, b3, b4 = func(b1)
c2, c3, c4 = func(c1)
[/aa]
無題 無名 ID:XwfJWrd. 2020/02/29(六) 21:11:16.804 No.17728215
>>17728178
你挑這皮毛做什麼...
感覺又是個半瓶水天兵
無題 無名 ID:e1BYC6Cs 2020/02/29(六) 21:11:24.266 No.17728217
回覆: >>17728286
附圖
>>17728178
可是可讀性很重要耶
轉換型態這種蝦雞巴毛的以後根本不會去修改
寫3行會被打ㄛ
無題 無名 ID:tHRZaqLY 2020/02/29(六) 21:12:14.610 No.17728229
>>17728178
真白別丟人了
還是乖乖去賣屁股吧
無題 無名 ID:aaq3gw.Y 2020/02/29(六) 21:12:35.583 No.17728230
>>17728167
你會c++的話,學python不是問題吧
python很好上手的
無題 無名 ID:XwfJWrd. 2020/02/29(六) 21:14:42.256 No.17728242
>>17728178
存在變數裡 -> memory leaked
寫成一行 -> 暫存 用完馬上清掉
低能兒你說啥?
無題 無名 ID:N33d1Ebc 2020/02/29(六) 21:19:15.335 No.17728286
附圖
>>17728163
>>17728178
>>17728217
分段寫是因為我太菜 中間都要加#註解 不然一回頭就忘記寫那行要衝啥
>>17728196
這有點高深 窩看不懂..

我想問的是類似這樣
str_2 = float(list(str_1.values())[1])
agi_2 = float(list(agi_1.values())[1])
dex_2 = float(list(dex_1.values())[1])
.
.
xxx_2 = float(list(xxx_1.values())[1])

xxx命名不同的名稱 可是數量不少 想求速解的方法
無題 無名 ID:/NAAC/cY 2020/02/29(六) 21:39:29.806 No.17728478
>>17728286
用 dictionary ?

stat = {
"str": str_1,
"agi": agi_1,
"dex": dex_1,
...
"xxx": xxx_1
}

for key in stat:
stat[key] = float(list(stat[key].values())[1])
無題 無名 ID:/xE2erks 2020/02/29(六) 21:41:48.316 No.17728502
設計一個資料結構封裝起來
無題 無名 ID:Qlc94pKE 2020/02/29(六) 21:46:51.566 No.17728546
附圖
資工島民覺得這波疫情會讓攻城屍薪資上漲嗎?
還是進入寒冬?
無題 無名 ID:krY/hfnY 2020/02/29(六) 21:47:21.025 No.17728553
>>17728546
沒影響
無題 無名 ID:XWE8Ns1w 2020/02/29(六) 21:47:27.386 No.17728555
>>17728286
分兩段
產生名字
名字變變數

大概吧
無題 無名 ID:qiEJ1M6w 2020/02/29(六) 21:47:30.214 No.17728556
回覆: >>17728567
附圖
>>17728396
python不熟 php的話我會用function回傳陣列

寫法是
[str_2,agi_2,dex_2]=function_1to2(1);
無題 無名 ID:vTpPkMcA 2020/02/29(六) 21:48:22.727 No.17728565
>>17728546
如果你是電子業應該可以準備換工作了
無題 無名 ID:/xE2erks 2020/02/29(六) 21:48:41.987 No.17728567
>>17728556
不管是什麼語言
抽象化總是比較好懂
無題 無名 ID:xeG/y42c 2020/02/29(六) 21:53:37.919 No.17728623
附圖
物件導向
無題 無名 ID:krY/hfnY 2020/02/29(六) 21:53:59.411 No.17728627
回覆: >>17728656
>>17728286
[aa]
data_1 = {
'str': str_1,
'agi': agi_1,
'dex': dex_1,
.
.
'xxx': xxx_1
}
data_2 = {k: float(v.values())[1]) for k, v in data_1.items()}
[/aa]
無題 無名 ID:QfSJfHKg 2020/02/29(六) 21:54:25.151 No.17728636
>>17728286
從一開始就不要把對稱的資料宣告成無關的變數
str_1改成status_1[str]
agi_1改成status_1[agi]
然後就可以對索引值做for了
無題 無名 ID:krY/hfnY 2020/02/29(六) 21:55:56.137 No.17728656
>>17728627
最後一行更正
[aa]
data_2 = {k: float(list(dex_1.values())[1]) for k, v in data_1.items()}
[/aa]
無題 無名 ID:N33d1Ebc 2020/02/29(六) 22:11:13.865 No.17728819
附圖
用dict似乎搞得定 島島太神啦

另外剛才發現xxx_2 = float(list(xxx_1.values())[1])
的寫法會報錯:TypeError: float() argument must be a string or a number, not 'list'

然後每一個變數輸出的時間似乎會延遲 會間隔1~2秒才跳下個
這是正常情況嗎?