如何在Python中合併兩個整數(例如10和20),並且有一個數字。在Python中合併兩個整數
回答
python中要做到這一點,最好的辦法是給在接受的答案 - 但如果你想這樣做在Jinja2的模板 - 連接操作~
爲您提供了這樣的一種巧妙的方法,因爲它看起來的Unicode表示所有的對象,因此,你可以'連接整數'。
這是可以做到這一點(因爲a=10
和b=20
):
{{ a ~ b }}
演員都爲一個字符串,在連接字符串,然後把結果返回到一個整數:
z = int(str(x) + str(y))
粗糙,但工作實現:
i1,i2 = 10,20
num = int('%i%i' % (i1,i2))
基本上,你只是合併兩個數字成一個字符串,然後將其轉換回int。
使用舊式的字符串格式化:
>>> x = 10
>>> y = 20
>>> z = int('%d%d' % (x, y))
>>> print z
1020
使用數學可能快於轉換爲STR和備份解決方案:
如果您可以假設一個兩位數第二個數字:
def f(x, y):
return x*100+y
用法:
>>> f(1,2)
102
>>> f(10,20)
1020
雖然,您可能希望包含一些檢查以驗證第二個數字不超過兩位數。或者,如果你的第二個號可以是任何數量的數字,你可以做這樣的事情:
import math
def f(x, y):
a = math.floor(math.log10(y))
return int(x*10**(1+a)+y)
用法:
>>> f(10,20)
1020
>>> f(99,193)
99193
這個版本然而,不允許你像03合併號和02得到0302.爲此,您需要添加參數來指定每個整數中的位數,或者使用字符串。
只給另一種解決方案:
def concat_ints(a, b):
return a*(10**len(str(b)))+b
>>> concat_ints(10, 20)
1020
當然的「正確」的答案應該是康斯坦丁的回答。但是,如果你還是想知道如何做到這一點,而不使用字符串類型轉換,只需用數學:
import math
def numcat(a,b):
return int(math.pow(10,(int(math.log(b,10)) + 1)) * a + b)
>> numcat(10, 20)
>> 1020
無法將'lastnum = 3'這樣的0連接爲numcat(lastnum,0)'ValueError:數學域錯誤 – DarkXDroid
使用此功能,只要你想
def concat(*args):
string = ''
for each in args:
string += str(each)
return int(string)
例如concat(20, 10, 30)
將您可以連接儘可能多的數字返回201030
的整數
OR
您還可以使用t他一行方案
int(''.join(str(x) for x in (20,10,30)))
這也將返回201030
。
或者只是做:'concat = lambda * args:int(「」。join(map(str, args)))',它會更快:) – slallum
def concatenate_int(x, y):
try:
a = floor(log10(y))
except ValueError:
a = 0
return int(x * 10 ** (1 + a) + y)
def concatenate(*l):
j = 0
for i in list(*l):
j = concatenate_int(j, i)
return j
如果你還會爲你的代碼寫一些解釋,那將會很好。 – 2014-06-24 20:03:19
一個很好的方式,以及是使用內置的減少()函數:
reduce(lambda x,y:x*10+y,[10,20])
- 1. 在Python中合併兩個數據幀
- 2. 合併兩個Python中
- 3. Python - 合併兩個表中的數據
- 4. 在Python中合併兩個對象
- 5. 在Python中合併兩個表
- 6. 在Python中合併兩個字典
- 7. 在Python中合併兩個列表
- 8. 合併python中的兩個鍵上的兩個數據框
- 9. Python AST - 合併兩個AST
- 10. Python:合併/連接兩個數據幀
- 11. 用Python合併兩個數據框
- 12. 接受兩個整數數組並返回合併數組
- 13. 在bash或python中合併兩個或兩個以上的csv?
- 14. '合併'Python中的兩個對象
- 15. 如何合併Python中的兩個圖?
- 16. 合併python中的兩個csv文件
- 17. 合併兩個嵌套列表在Python
- 18. 將兩個整數合併爲一個並稍後解碼
- 19. 「合併」的兩列在Python
- 20. 在jQuery中合併兩個ready()函數
- 21. 在jScript中合併兩個函數
- 22. 在nodejs中合併兩個數組
- 23. 在Javascript中合併兩個數組
- 24. 在R中合併兩個數據幀
- 25. 在nodejs中合併兩個JSON數據
- 26. 在Matlab中合併兩個數字
- 27. 在Pandas中合併兩個數據集
- 28. 合併/合併兩個php函數
- 29. 在python中將兩個數組合併成一個矩陣並排序
- 30. 在Python中合併兩個文件並對其進行排序
你不認爲導入數學會減慢速度嗎? – none
@gokcehan是的,但如果你要在一個循環中多次調用這個函數,那麼導入數學的時間將是微不足道的 – Matt
此外,它比數字串操作更具數學意義。 – delnan