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]
"-".join(str(n) for n in my_list)
"-".join([str(n) for n in my_list])
"-".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 에서 더 많은 정보
'IT story' 카테고리의 다른 글
“Gradle 버전 2.10이 필요합니다.” (0) | 2020.04.06 |
---|---|
jQuery에 특정 ID의 div가 있는지 확인하는 방법은 무엇입니까? (0) | 2020.04.06 |
모든 훌륭한 .NET 개발자가 대답 할 수있는 질문이 있습니까? (0) | 2020.04.06 |
특정 리포지토리에만 GIT_SSL_NO_VERIFY를 어떻게 설정합니까? (0) | 2020.04.06 |
프로그래밍 방식으로 단추를 만드는 방법은 무엇입니까? (0) | 2020.04.06 |