내가 파이썬 스크립트에서 다음 문자열로 변환하고자 튜플로 변환하는 방법 :문자열
: 튜플mytuple=[(5,650),(235,650),(465,650),(695,650)]
등이 print mytuple[0]
수익률의 목록에
mystring='(5,650),(235,650),(465,650),(695,650)'
을
(5,650)
내가 파이썬 스크립트에서 다음 문자열로 변환하고자 튜플로 변환하는 방법 :문자열
: 튜플mytuple=[(5,650),(235,650),(465,650),(695,650)]
등이 print mytuple[0]
수익률의 목록에
mystring='(5,650),(235,650),(465,650),(695,650)'
을
(5,650)
그건 튜플이 아니에요. you shown 've대로 동일하게되는 format에 따라 달라질 수 있습니다 If
, 당신은 probably 목록에 변환 할 이런 일을하는 사람들과 away get 수 :
mystring2 = mystring.translate(None, "()")
numbers = mystring2.split(",")
out = []
for i in xrange(len(numbers)/2)
out.append((int(numbers[2 * i), int(2 * i + 1])))
This는 probably some을 using improved 할 수 있습니다 더 나은 목록 걷기 메커니즘. 그래도 꽤 명확해야합니다.
은 정말 튜플의 튜플을 원하는 경우에, 당신은 최종 목록으로 변환 할 수 있습니다 :
out2 = tuple(out)
내가 사용하는 것 ast.literal_eval
:
In [7]: ast.literal_eval('(5,650),(235,650),(465,650),(695,650)')
Out[7]: ((5, 650), (235, 650), (465, 650), (695, 650))
위에서 볼 수 있듯이을이의 튜플을 반환 튜플. 튜플 목록을 원하면 list()
을 결과에 적용하면됩니다. 당신이 목록 묶으이 brackes와 mystring에 원하는 경우
사용 eval
는
mytuple = eval(mystring)
'간단한'솔루션을 (파이썬 2.5 가져 오는 것도, 일을) 없습니다
mytuble=eval("[%s]" % mystring)
는 그러나 ast.literate_eval
는 더 많은 것 적절한 방어 컨텍스트.
문자열이 안전한 출처에서 제공된다면 이것은 내가 가장 좋아할 것입니다. 그렇지 않으면, 어쩌면 정규식 기반의 솔루션은 괜찮을 것이다. – glglgl
** 사회자의 메모 : ** _ 귀사가 eval을 사용할 때의 위험성에 관해 논의하고 싶다면 채팅을하십시오. 이 답변의 주석은 잡음으로 저하 되었기 때문에 제거되었습니다. 단지 몇 개를 삭제하면 대화가 끊어졌습니다. 언제든지 채팅으로 이동하고 해결 방법을 찾은 다음 여기에서 성적표에 연결할 수 있습니다 ._ –
잘못되었습니다. 목록 안에있는 텍스트 만 가져옵니다. – JBernardo