Home > Enterprise >  combining sublists created from regex expressions
combining sublists created from regex expressions

Time:11-12

I used a regex expression which extracted numbers from some line and this created some list which i combined using the append function how do i combine these sublists into one list

fname=input('Enter file name:')
if len(fname)<1:
  fname='regex_sum_42.txt'
fhand=open(fname)
total=0
numlist=list()
for line in fhand:
  line.rstrip()
  numl= re.findall('([0-9] )',line )
  if len(numl)<1:
    continue
  numlist.append(numl[0:])
print(numlist)

What i got : [[1,2,3],[4,5]] ,i expected to get [1,2,3,4,5]

CodePudding user response:

One solution to flatten your list of lists.

sum(numlist, [])

CodePudding user response:

You are working too hard: why process the file line by line when you can process the whole file at once?

# Assume file_name is defined

with open(file_name) as stream:
    contents = stream.read()
    
numbers_list = re.findall(r"\d ", contents)
numbers_list = [int(number) for number in numbers_list]
print(numbers_list)

Notes

  • I used the regular expression r"\d ", which is an alternative form. \d will match a digit.
  • By default, re.findall() will return text, which we need to convert to integers if needed
  • Related