-2

I got a list like this:

[['zai4'], [' '], ['tui1'], ['jin4'], [' '], ['shi2'], ['pin3'], [' '], ['an1'], ['quan2'], [' '], ['xin4'], ['xi1'], [' ']]

how could I convert it into this kind:

zai4 tui1 jin4 shi2 pin3 an1 quan2 xin4 xi1

Thank you.

I think the unique part of my question is how to extract content from sub-list into string.

3 Answers3

0

Using list comprehension and str.join

a = [['zai4'], [' '], ['tui1'], ['jin4'], [' '], ['shi2'], ['pin3'], [' '], ['an1'], ['quan2'], [' '], ['xin4'], ['xi1'], [' ']]
print(" ".join(i[0] for i in a).replace("  ", ""))

Output:

zai4 tui1 jin4 shi2 pin3 an1 quan2 xin4 xi1
Rakesh
  • 81,458
  • 17
  • 76
  • 113
0

Try this approach:

data=[['zai4'], [' '], ['tui1'], ['jin4'], [' '], ['shi2'], ['pin3'], [' '], ['an1'], ['quan2'], [' '], ['xin4'], ['xi1'], [' ']]



print([i[0] for i in data if i[0].isalnum()])

output:

['zai4', 'tui1', 'jin4', 'shi2', 'pin3', 'an1', 'quan2', 'xin4', 'xi1']

if you want without list then:

print(" ".join([i[0] for i in data if i[0].isalnum()]))

output:

zai4 tui1 jin4 shi2 pin3 an1 quan2 xin4 xi1
Aaditya Ura
  • 12,007
  • 7
  • 50
  • 88
  • Thanks for your solution. What if I want to save the output as a list form? Such as ['zai4 tui1 jin4 shi2 pin3 an1 quan2 xin4 xi1'], but not in string. – David Aksnes Apr 20 '18 at 03:43
0

You can use unpacking:

s = [['zai4'], [' '], ['tui1'], ['jin4'], [' '], ['shi2'], ['pin3'], [' '], ['an1'], ['quan2'], [' '], ['xin4'], ['xi1'], [' ']]
new_s = ' '.join(a for [a] in s if a != ' ')

Output:

'zai4 tui1 jin4 shi2 pin3 an1 quan2 xin4 xi1'
Ajax1234
  • 69,937
  • 8
  • 61
  • 102