IT story

Python에서 문자열과 다른 유형의 항목 목록에 참여

hot-time 2020. 4. 6. 08:14
반응형

Python에서 문자열과 다른 유형의 항목 목록에 참여


아이템 목록에 가입해야합니다. 목록의 많은 항목은 함수에서 반환 된 정수 값입니다. 즉,

myList.append(munfunc()) 

반환 된 결과를 목록과 결합하기 위해 문자열로 어떻게 변환해야합니까?

모든 정수 값에 대해 다음을 수행해야합니까?

myList.append(str(myfunc()))

캐스팅 문제를 해결하는 더 파이썬적인 방법이 있습니까?


호출 str(...)은 무언가를 문자열로 변환하는 파이썬 방식입니다.

문자열 목록을 원하는 이유를 고려할 수 있습니다. 대신 정수 목록으로 유지하고 정수를 표시해야 할 때만 문자열로 변환 할 수 있습니다. 예를 들어 정수 목록이 있으면 다음을 수행 할 수 있습니다.

print ', '.join(str(x) for x in list_of_ints)

질문에 사용하는 문법이 매우 나쁘기 때문에 "join"이 무슨 뜻인지 잘 모르겠습니다.하지만 질문을 올바르게 이해하면 정수를 str에 전달해도 아무런 문제가 없습니다. 이렇게하지 않을 수있는 한 가지 이유는 myList가 실제로 정수 목록이어야한다는 것입니다. 예를 들어 목록의 값을 합산하는 것이 합리적입니다. 이 경우 myList에 추가하기 전에 int를 str에 전달하지 마십시오. 추가하기 전에 문자열로 변환하지 않으면 다음과 같은 작업을 수행하여 하나의 큰 문자열을 구성 할 수 있습니다

', '.join(map(str, myList))

파이썬에서 map 함수를 사용할 수 있습니다. 두 가지 주장이 필요합니다. 첫 번째 인수는 목록의 각 요소에 사용해야 하는 함수 입니다. 두 번째 주장은 iterable 입니다.

a = [1, 2, 3]   
map(str, a)  
['1', '2', '3']

목록을 문자열로 변환 한 후 단순 결합 기능을 사용하여 목록을 단일 문자열로 결합 할 수 있습니다.

a = map(str, a)    
''.join(a)      
'123'

a=[1,2,3]
b=[str(x) for x in a]
print b

위의 방법은 목록을 문자열로 변환하는 가장 쉽고 가장 일반적인 방법입니다. 또 다른 짧은 방법은

a=[1,2,3]
b=map(str,a)
print b

이를 수행하는 세 가지 방법이 있습니다.

정수 목록이 있다고 가정 해 봅시다.

my_list = [100,200,300]
  1. "-".join(str(n) for n in my_list)
  2. "-".join([str(n) for n in my_list])
  3. "-".join(map(str, my_list))

그러나 파이썬 웹 사이트 ( https://docs.python.org/2/library/timeit.html) 의 timeit 예제에 명시된 것처럼 맵을 사용하는 것이 더 빠릅니다. 그래서 당신이 사용하는 것이 좋습니다"-".join(map(str, my_list))


당신의 문제는 다소 분명합니다. 다른 목록의 모든 요소를 ​​기존 목록에 추가하기 위해 확장을 원할 수도 있습니다.

>>> x = [1,2]
>>> x.extend([3,4,5])
>>> x
[1, 2, 3, 4, 5]

정수를 문자열로 변환하려면 str () 또는 문자열 보간을 사용하십시오.

>>> x = ['1', '2']
>>> x.extend([str(i) for i in range(3, 6)])
>>> x
['1', '2', '3', '4', '5']

이 모든 것은 피 토닉으로 간주됩니다.


어쩌면 숫자로 문자열이 필요하지 않을 수도 있습니다.

functaulu = [munfunc(arg) for arg in range(loppu)]

나중에 문자열로 필요하면 문자열 또는 형식 문자열로 할 수 있습니다.

print "Vastaus5 = %s" % functaulu[5]


예를 들면 다음과 같습니다.

lst_points = [[313, 262, 470, 482], [551, 254, 697, 449]]

lst_s_points = [" ".join(map(str, lst)) for lst in lst_points]
print lst_s_points
# ['313 262 470 482', '551 254 697 449']

나에 관해서는, str각 str 목록 앞에 before 를 추가하고 싶습니다 .

# here o means class, other four points means coordinate
print ['0 ' + " ".join(map(str, lst)) for lst in lst_points]
# ['0 313 262 470 482', '0 551 254 697 449']

또는 단일 목록 :

lst = [313, 262, 470, 482]
lst_str = [str(i) for i in lst]
print lst_str, ", ".join(lst_str)
# ['313', '262', '470', '482'], 313, 262, 470, 482

lst_str = map(str, lst)
print lst_str, ", ".join(lst_str)
# ['313', '262', '470', '482'], 313, 262, 470, 482

아무도 안 좋아하는 것 같아 repr?
파이썬 3.7.2 :

>>> int_list = [1, 2, 3, 4, 5]
>>> print(repr(int_list))
[1, 2, 3, 4, 5]
>>> 

그러나 명시적인 표현입니다. 예는 다음과 같습니다.

#Print repr(object) backwards
>>> print(repr(int_list)[::-1])
]5 ,4 ,3 ,2 ,1[
>>> 

pydocs-repr 에서 더 많은 정보

참고 URL : https://stackoverflow.com/questions/3590165/join-a-list-of-items-with-different-types-as-string-in-python

반응형