для такой задачи вы можете использовать FILTER
с MATCH
или COUNTIF
=FILTER(A1:A, MATCH(A1:A, B1:B, 0))
=FILTER(A1:A, COUNTIF(B1:B, A1:A))
и для обратной логики:
=FILTER(A1:A, ISNA(MATCH(A1:A, B1:B, 0)))
=FILTER(A1:A, NOT(COUNTIF(B1:B, A1:A)))
и, возможно, обернуть его в [ 115] если вам нужно
Вызов строки в списке Python звонит __repr__
метод на каждом элементе внутри. Для некоторых объектов, __str__
и __repr__
то же. Если Вы хотите то поведение, сделайте:
def __str__(self):
...
def __repr__(self):
return self.__str__()
Можно использовать понимание списка для генерации нового списка с каждой ул. объекта () 'd автоматически:
print([str(item) for item in mylist])
В зависимости от того, что Вы хотите использовать тот вывод для, возможно __repr__
могло бы быть более соответствующим:
import unittest
class A(object):
def __init__(self, val):
self.val = val
def __repr__(self):
return repr(self.val)
class Test(unittest.TestCase):
def testMain(self):
l = [A('a'), A('b')]
self.assertEqual(repr(l), "['a', 'b']")
if __name__ == '__main__':
unittest.main()
Две легких вещи можно сделать, использование map
функционируйте или используйте понимание.
Но это получает Вас список строк, не строки. Таким образом, также необходимо присоединиться к строкам вместе.
s= ",".join( map( str, myList ) )
или
s= ",".join( [ str(element) for element in myList ] )
Затем можно распечатать этот составной строковый объект.
print 'my list is %s'%( s )
Я соглашаюсь с предыдущим ответом об использовании пониманий списка, чтобы сделать это, но Вы могли, конечно, скрыть это позади функции, если это - то, что пускает в ход Вашу лодку.
def is_list(value):
if type(value) in (list, tuple): return True
return False
def list_str(value):
if not is_list(value): return str(value)
return [list_str(v) for v in value]
Только для забавы, я сделал list_str () рекурсивно ул. () все содержавшее в списке.
Что-то вроде этого?
a = [1, 2 ,3]
[str(x) for x in a]
# ['1', '2', '3']