【问题标题】:How can I extend/append a list with multiple indexes from a variable?如何扩展/附加具有来自变量的多个索引的列表?
【发布时间】:2016-10-26 13:26:56
【问题描述】:

我正在尝试创建一个 binary32 浮点到十进制转换器,它由 8 位的指数和 24 位的尾数组成。我有exponent = []mantissa = []。如果用户输入010000111111101101000000000000000,我希望将value 的索引一到八添加到exponent,并将value 的索引九到三十二添加到mantissa。我目前有以下意大利面条代码来执行此操作:

print ("Welcome to August's floating point value to decimal converter!")
value = input("Please enter 32 bit floating value to convert.")
exponent = []
mantissa = []
exponent.append(value[1])
exponent.append(value[2])
exponent.append(value[3])
exponent.append(value[4])
exponent.append(value[5])
exponent.append(value[6])
exponent.append(value[7])
exponent.append(value[8])
print (exponent)
mantissa.append(value[9])
mantissa.append(value[10])
mantissa.append(value[11])
mantissa.append(value[12])
mantissa.append(value[13])
mantissa.append(value[14])
mantissa.append(value[15])
mantissa.append(value[16])
mantissa.append(value[17])
mantissa.append(value[18])
mantissa.append(value[19])
mantissa.append(value[20])
mantissa.append(value[21])
mantissa.append(value[22])
mantissa.append(value[23])
mantissa.append(value[24])
mantissa.append(value[25])
mantissa.append(value[26])
mantissa.append(value[27])
mantissa.append(value[28])
mantissa.append(value[29])
mantissa.append(value[30])
mantissa.append(value[31])
mantissa.append(value[32])
print (mantissa)

因此,与其单独附加每个索引,我想知道是否有一种方法可以将它们全部添加到列表中。我尝试了以下extend 方法:

exponent.extend(value[1, 2, 3, 4, 5, 6, 7, 8]) 也没有逗号

exponent.extend(value[1], value[2], value[3], value[4], value[5], value[6], value[7], value[8], ) 然后我意识到extend 只接受一个参数。

exponent.extend(value[1-8]) 似乎减去了 1 和 8。

我试过exponent = {} 我相信哪个系列?然后尝试exponent.update,后跟多个带逗号的索引。然后告诉我它只支持一个论点。

关于如何将多个索引从value 添加到列表中还有其他建议吗?

【问题讨论】:

    标签: python binary floating exponent mantissa


    【解决方案1】:

    使用字符串切片可以编写相同的代码:

    value = input("Please enter 32 bit floating value to convert.")
    
    exponent, mentissa= value[1:9], value[9:]
    

    【讨论】:

    • 先生,你对我来说太快了,我承认我的回答,只是相当赞成
    • 非常感谢您。但是,对于指数,我做了value[1:8],因为第一个数字是符号位,所以我不想在指数中使用它。非常感谢您的帮助!
    • @AugustWilliams:在这种情况下,您必须使用 [1:9] 获取 8 位,因为它需要 elemnets 到 9-1 即 8。检查编辑
    • 啊,是的。刚刚在print 中意识到这一点。谢谢!
    • @anonymous stop,xD 我只是在取笑你比我快。我讨厌比别人慢,我知道有数百万人比我快.... T.T 我只需要训练得更好(提示摇滚主题音乐或一些训练音乐)我会变得更好!
    【解决方案2】:

    虽然您的问题得到了一个简洁的解决方案,但我想实际回答您的原始问题。您可以使用其中任何一个将列表添加到列表中:

    a = [1, 2, 3]
    b = [4, 5, 6]
    c = a + b    # c is now [1, 2, 3, 4, 5, 6]
    a.extend(b)  # a is now [1, 2, 3, 4, 5, 6]
    

    请注意,list.extend 实际上会修改列表,而添加本身不会。但是,您可以执行a += b 并获得与a.extend(b) 相同的结果。

    因此您可以执行以下操作:

    exponent.extend(value[1:9])
    

    如果您使用list.extend,您实际上可以使用任何可迭代对象(例如元组或集合),但是当您使用a += bc = a + b 时,它们通常都需要是相同的类型。

    【讨论】:

    • 我很高兴你发布了这个,因为它在我以后的程序中帮助了我。我需要在尾数中的特定点添加一个基数,我希望用一个列表来做到这一点。你帮了我很多!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2021-07-30
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多