iT邦幫忙

0

把123變321的程式,很EZ,不耗很多時間

Itzy 2021-05-22 10:00:572618 瀏覽
def converse(x):
    y=[]
    for i in x:
        y=i+y
converse([1,2,3,4])

上面的程式跑出來會出現下面的結果:
TypeError: unsupported operand type(s) for +: 'int' and 'list'
那我應該怎麼改比較恰當??

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
7
一級屠豬士
iT邦大師 1 級 ‧ 2021-05-22 12:57:56
最佳解答
>>> x = [1,2,3,4]
>>> x[::-1]
[4, 3, 2, 1]

這是Python List 基本的功能.可以不需要另外寫程式.你用的教材不是很Python思維啊.

froce iT邦大師 1 級 ‧ 2021-05-22 19:02:48 檢舉

我要寫也是這樣寫

Itzy iT邦新手 5 級 ‧ 2021-05-23 10:13:03 檢舉

!!原來這麼簡單

2
japhenchen
iT邦超人 1 級 ‧ 2021-05-22 10:19:20
def converse(x):
    y=[]
    for i in sorted(x,reverse=True):
        y.append(i)
    return y
print(converse([1,2,3,4]))

一句完成

print(sorted([1,2,3,4],reverse=True))

熊熊忘了step -1的方法~

1
海綿寶寶
iT邦大神 1 級 ‧ 2021-05-22 11:01:26
def converse(x):
    y=[]
    for i in x:
        y.insert(0, i)
    print(y)
converse([1,2,3,4])
0
YC
iT邦研究生 2 級 ‧ 2021-05-26 15:02:03

python我不熟,swift的解法,你參考一下

extension Int {
    var reversed: Int? {
        let reversed = "\(self)"          // 數字轉字串
                            .reversed()   // 反轉字串成字元陣列
                            .map{"\($0)"} // 字元陣列轉字串陣列
                            .joined()     // 合併字串陣列
        return Int(reversed)              // 字串轉數字
    }
}
print(123.reversed)
0
oxygen8848
iT邦新手 5 級 ‧ 2021-05-31 16:17:44

1.想了一下你的問題,提供另一種思路解法給你參考

利用pop(), append()

2.TypeError: unsupported operand type(s) for +: 'int' and 'list'

不同型別不能相加,但這兩個型別都有支援"+"法

def converse(x):
    y = []
    # x : [1, 2, 3, 4]
    # y : []
    while True:
        if x: # if x: == if len(x):
            temp = x.pop()
            y.append(temp)
        else:
            break
    # x : []
    # y : [1, 2, 3, 4]
    print(f"x:{x} , y:{y}")
converse([1, 2, 3, 4])

我要發表回答

立即登入回答