concatenating 2 items at a time in a python list - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: concatenating 2 items at a time in a python list (/thread-30437.html) |
concatenating 2 items at a time in a python list - K11 - Oct-21-2020 I have a list named data having the items shown as below. a229f7d1148c27d5ff46cbf506f92a9e 3c73dc22ddaafa58346cc5241a78d509 c5ebe3eff60ef972fdd9a9d5e4762227 1c720ec8c2615529e1500d77020a1dc2 63d8e40d1c5aabbee5cf35a13a95b089 0994bcd4f5722e3ae8620a483b83abbf 06f628503dddc37956e586b9e537b3ae a229f7d1148c27d5ff46cbf506f92a9e 3c73dc22ddaafa58346cc5241a78d509 f6ebd290be34c47ffc84f0a4f123112a c5ebe3eff60ef972fdd9a9d5e4762227 1c720ec8c2615529e1500d77020a1dc2 I want to concatenate 2 items at a time for the entire list and copy that to an output file as below: data[index+ 1] + data[index] so that i get the following items 3c73dc22ddaafa58346cc5241a78d509a229f7d1148c27d5ff46cbf506f92a9e 1c720ec8c2615529e1500d77020a1dc2c5ebe3eff60ef972fdd9a9d5e4762227 and so on till the end of the list. ind = 0 while ind < len(data): for i in range(int(len(data)/2)): new_file.write("".join(data[(ind + 1): ind])) new_file.write("\n") ind += 2 But i am not getting the desired output. What am i doing wrong in the while loop? RE: concatenating 2 items at a time in a python list - bowlofred - Oct-21-2020 First problem is that your for loop seems extraneous. You're not using the index variable later. Your while loop is close, but you're slicing it incorrectly. You want the later value first, you've written data[ind+1:ind] . But since the default step is 1 (a positive number), the slice never works. Better would be to write them as two different accesses: data[ind+1], data[ind] and combine them.Tweaking it... import string data = string.ascii_lowercase[:8] ind = 0 while ind < len(data): print("".join(data[ind+1] + data[ind])) ind += 2
RE: concatenating 2 items at a time in a python list - K11 - Oct-21-2020 (Oct-21-2020, 08:21 AM)bowlofred Wrote: First problem is that your for loop seems extraneous. You're not using the index variable later.I used the following code and it works..kindly check and let me know if its correct. for i in range(0, len(data), 2): next = data[i+1] + data[i] Expected_z.append(next) RE: concatenating 2 items at a time in a python list - buran - Oct-21-2020 data = ['a229f7d1148c27d5ff46cbf506f92a9e', '3c73dc22ddaafa58346cc5241a78d509', 'c5ebe3eff60ef972fdd9a9d5e4762227', '1c720ec8c2615529e1500d77020a1dc2', '63d8e40d1c5aabbee5cf35a13a95b089', '0994bcd4f5722e3ae8620a483b83abbf', '06f628503dddc37956e586b9e537b3ae', 'a229f7d1148c27d5ff46cbf506f92a9e', '3c73dc22ddaafa58346cc5241a78d509', 'f6ebd290be34c47ffc84f0a4f123112a', 'c5ebe3eff60ef972fdd9a9d5e4762227', '1c720ec8c2615529e1500d77020a1dc2'] for item in zip(data[1:], data[:-1]): print(''.join(item))if you want, you may use more-itertools package form pypi import more_itertools data = ['a229f7d1148c27d5ff46cbf506f92a9e', '3c73dc22ddaafa58346cc5241a78d509', 'c5ebe3eff60ef972fdd9a9d5e4762227', '1c720ec8c2615529e1500d77020a1dc2', '63d8e40d1c5aabbee5cf35a13a95b089', '0994bcd4f5722e3ae8620a483b83abbf', '06f628503dddc37956e586b9e537b3ae', 'a229f7d1148c27d5ff46cbf506f92a9e', '3c73dc22ddaafa58346cc5241a78d509', 'f6ebd290be34c47ffc84f0a4f123112a', 'c5ebe3eff60ef972fdd9a9d5e4762227', '1c720ec8c2615529e1500d77020a1dc2'] for item in more_itertools.windowed(data, 2): print(''.join(item[::-1])) |