I have a variable which can be a single string or a list of string. When the variable is a single string , the loop iterates it by char.
text = function() # the function method can return a single string or list of string
for word in text:
print word+"/n"
# When it is a single string , it prints char by char.
I would want the loop to iterate only one time when it is a single string. I actually do not want to use other loop types. How can I do it with for each structure?
It would be cleaner if your function would always return a list even one with only one element. I would highly recommend this if you can change your code there.
Otherwise add this line before your loop:
text = text if isinstance(text, list) else [text]
Also your variable names are confusing you should call "text" "word_list" or something just to better indicate the type required.
Requiring type checking usually indicates a problem of style.
This should do it:
text = function()
if isinstance(text, list):
for word in text:
print word + "/n"
else:
print text + "/n"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With