튜플 목록에 포함 된 일부 데이터가 있습니다. 다른 파트가 특정 조건 세트를 충족시키는 경우 각 튜플의 한 부분을 합치기를 원합니다.조건부로 튜플 및 합계 목록에 액세스
var = [("car", '1'), ("dog", '1'), ("mercedes", '1'), ("cat", '1'), ("ferrari", '1'), ("bird", '1')]
내가 나를 위의 구조에있는 모든 숫자 데이터에 액세스 할 수 있도록 다음과 같은 코드가 있습니다 : 다음은 몇 가지 예를 들어 데이터는이 다음과 같은 형식으로 데이터를 출력합니다
을var = [x[1] for x in var]
print ",".join(map(lambda x: str(x).strip(), var))
:
1,1,1,1,1,1
내가 대신 지능형리스트에 x[0]
을 사용하는 경우에 나는의 출력을 얻을 것이다 :
car, dog, mercedes, cat, ferrari, bird
내가 생각하고 싶은 것은 말한다 뭔가 :
if x[0] == "car" or x[0] == "mercedes" or x[0] == "ferrari" then var2 == x[1] + x[1] + x[1]
print var2
을 내가 그 위에서 작동하지 않습니다 있으리라 믿고있어,하지만 난 그것을 코딩하는 방법을 정말 잘 모르겠어요 그게 효과가 있습니다.
위의 내용은 간단한 데모입니다.
[("'goal','corner','rightfoot'", '1'), ("'goal','directfreekick','leftfoot'", '1'),
("'goal','openplay','leftfoot'", '1'), ("'goal','openplay','rightfoot'", '2'),
("'miss','corner','header'", '3'), ("'miss','directfreekick','leftfoot'", '1'),
("'miss','directfreekick','rightfoot'", '1'), ("'miss','openplay','header'", '3'),
("'miss','openplay','leftfoot'", '8'), ("'miss','openplay','rightfoot'", '11')]
... 내가 구문 분석하는 데 사용하고있는 정확한 구문은 다음과 같습니다 : 나는 구문 분석하고 전체 문자열입니다 regex2은 튜플의리스트의 값을 할당
matching = {"'goal','openplay','leftfoot'", "'goal','openplay','rightfoot'", "'goal','corner','leftfoot'", "'goal','corner','rightfoot'"}
regex2 = [value for key, value in regex2 if key in matching]
regex2 = sum(int(value) for key, value in regex2 if key in matching)
print regex2
... 위. 합계 줄은 오류의 원인입니다. 그 위에 라인이 인쇄 않도록 :
['1', '1', '2']
안녕하세요, 감사합니다. 이것은 내가 원하는 것을 할 것 같은데, 유일하게 복잡한 요소는 내가 사용하고있는 실제 변수의 형식입니다. 내 실제 튜플 중 하나의 예입니다 (IDLE 화면에 인쇄 할 때) : "('목표', 'directfreekick', 'leftfoot'", '1') ... 그래서 일치하는 말을 시도했다 {{ " '목표', 'directfreekick', 'leftfoot' "} 그러나 이것은 'exceptions.ValueError : 압축하는 데 1 개 이상의 값이 필요합니다'라는 오류를 발생시킵니다. 이는 내 일치하는 명령문이 올바르지 않기 때문에 추정됩니다. – gdogg371
적어도 * one * 요소가있는 튜플이 하나 이상있는 것 같습니다. 귀하의'매칭'세트 정의가 잘 보인다. –
... ive는 그들 모두를 보았고 그들 모두는 두 요소를 가지고 있습니다. – gdogg371