Reputation: 334
I've got this example
a='Datenfernübertragung remote data transmission|long-distance data transmission|long-distance data transfer|remote data transmission Preferred|Forbidden|Forbidden|'
b = a.split('\t')
for item in b[1].split('|'):
indeks=b[1].split('|').index(item)
print(indeks)
and it returns at this moment 0, 1, 2, 0
which are indexes of remote data transmission|long-distance data transmission|long-distance data transfer|remote data transmission
but why it return to index 0, instead of printing index 3?
Thanks
Upvotes: 0
Views: 36
Reputation: 603
Python 3.4.3 (default, Nov 17 2016, 01:11:57)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a='Datenfernübertragung remote data transmission|long-distance data transmission|long-distance data transfer|remote data transmission Preferred|Forbidden|Forbidden|'
>>> b = a.split('\t')
>>> b
['Datenfernübertragung remote data transmission|long-distance data transmission|long-distance data transfer|remote data transmission Preferred|Forbidden|Forbidden|']
>>> b[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
There is no any \t in your string, b is a single-item list and its index is zero. Thus your code snippet is completely wrong.
As I could understand you've took an attempt to derive indexes for vertical bar separated values in the string. Hope this snippet should do it in a much neat way:
>>> for i, j in enumerate(a.split('|')):
... print(i, j)
...
0 Datenfernübertragung remote data transmission
1 long-distance data transmission
2 long-distance data transfer
3 remote data transmission Preferred
4 Forbidden
5 Forbidden
6
Upvotes: 2