1

リストの要素が変更されないPythonの方法はありますか?

たとえば、整数は整数のままで、文字列は文字列のままである必要がありますが、これは同じプログラムで実行する必要があります。

サンプルコードは次のようになります。

print("Enter the size of the list:")
N = int(input())
for x in range(N):
    x = input("")    
    the_list.append(x)
    the_list.sort()

print(the_list)

結果:the_list = ['1','2','3']

整数が文字列に変換された整数のリストですが、これは間違っています。

ただし、リストの文字列は文字列のままにする必要があります。

4

1 に答える 1

3
for x in range(N):
    x = input("")
    try:  
        the_list.append(int(x))
    except ValueError:
        the_list.append(x)

これを実行しましょう:

1
hello
4.5
3
boo
>>> the_list
[1, 'hello', '4.5', 3, 'boo']

リストに混合タイプが含まれている場合、意味のある方法でリストをソートすることはできません (Python 2) またはまったく (Python 3) ことに注意してください。

>>> sorted([1, "2", 3])                     # Python 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()

>>> sorted([1, "2", 3])                     # Python 2
[1, 3, '2']
于 2012-09-23T07:36:41.493 に答える