Python list does not contain string

I have a list of strings, from which I want to locate every line that has 'http://' in it, but does not have 'lulz', 'lmfao', '.png', or any other items in a list of strings in it. How would I go about this?

My instincts tell me to use regular expressions, but I have a moral objection to witchcraft.

asked Mar 8, 2012 at 0:59

directeditiondirectedition

10.7k17 gold badges57 silver badges78 bronze badges

0

Here is an option that is fairly extensible if the list of strings to exclude is large:

exclude = ['lulz', 'lmfao', '.png']
filter_func = lambda s: 'http://' in s and not any(x in s for x in exclude)

matching_lines = filter(filter_func, string_list)

List comprehension alternative:

matching_lines = [line for line in string_list if filter_func(line)]

answered Mar 8, 2012 at 1:07

Andrew ClarkAndrew Clark

195k33 gold badges263 silver badges296 bronze badges

3

This is almost equivalent to F.J's solution, but uses generator expressions instead of lambda expressions and the filter function:

haystack = ['http://blah', 'http://lulz', 'blah blah', 'http://lmfao']
exclude = ['lulz', 'lmfao', '.png']

http_strings = (s for s in haystack if s.startswith('http://'))
result_strings = (s for s in http_strings if not any(e in s for e in exclude))

print list(result_strings)

When I run this it prints:

['http://blah']

answered Mar 8, 2012 at 1:10

1

Try this:

for s in strings:
    if 'http://' in s and not 'lulz' in s and not 'lmfao' in s and not '.png' in s:
        # found it
        pass

Other option, if you need your options more flexible:

words = ('lmfao', '.png', 'lulz')
for s in strings:
    if 'http://' in s and all(map(lambda x, y: x not in y, words, list(s * len(words))):
        # found it
        pass

answered Mar 8, 2012 at 1:03

Pablo Santa CruzPablo Santa Cruz

172k31 gold badges236 silver badges289 bronze badges

2

photo_camera PHOTO replyEMBED

Wed Jan 12 2022 04:25:36 GMT+0000 (UTC)

Saved by @weszerzad

if all(x not in mystr for x in mylist):
    print mystr

content_copyCOPY

https://stackoverflow.com/questions/58641898/check-if-string-does-not-contain-strings-from-the-list

During development in Machine learning, AI, or even web development, we generally come across a problem where we need to test if the particular item from a given list lies as a sub-string or not. To check if the list contains the specific element or not in Python, use the “in” operator or “not in” operator. Let’s explore this topic in detail.

To check if the list contains an element in Python, use the “in” operator. The “in” operator checks if the list contains a specific item or not. It can also check if the element exists on the list or not using the list.count() function.

Python list is an essential container as it stores elements of all the data types as a collection. Python “in operator” is the most convenient way to check if an item exists on the list or not.

This approach returns True if an item exists in the list and False if an item does not exist. The list need not be sorted to practice this approach of checking.

To check if the item exists in the list, use Python “in operator”. For example, we can use the “in” operator with the if condition, and if the item exists in the list, then the condition returns True, and if not, then it returns False.

See the following syntax of Python in operator.

# app.py

listA = ['Stranger Things', 'S Education', 'Game of Thrones']

if 'S Eductation' in listA:
    print("Yes, 'S Eductation' found in List : ", listA)

Output

python3 app.py
Yes, 'S Eductation' found in List :  ['Stranger Things', 'S Education', 'Game of Thrones']

Let’s take an example in which we do not find an item on the list.

# app.py

listA = ['Stranger Things', 'S Education', 'Game of Thrones']

if 'Dark' in listA:
    print("Yes, 'S Eductation' found in List : ", listA)
else:
    print("Nope, 'Dark' not found in the list")

Output

python3 app.py
Nope, 'Dark' Not found in the list

The list does not contain the dark element, so it returns False, and else block executes.

Check item exists in the list using List comprehension.

We can also use list comprehension to check if the item exists in the Python list.

See the following code.

# app.py

data_string = "The last season of Game of Thrones was not good"

listA = ['Stranger Things', 'S Education', 'Game of Thrones']

print("The original string : " + data_string)

print("The original list : " + str(listA))

res = [ele for ele in listA if(ele in data_string)]

print("Does string contain any list element : " + str(bool(res)))

Output

python3 app.py
The original string : The last season of Game of Thrones was not good
The original list : ['Stranger Things', 'S Education', 'Game of Thrones']
Does string contain any list element : True

List comprehensions provide a concise way to create the lists.

It consists of brackets containing the expression followed by a for clause, then zero or more for or if clauses. The expressions can be anything, meaning you can put all types of objects in lists.

The result will be the new list resulting from evaluating an expression in the context of the for and if clauses follow it.

In our example, we check for the list and also with string items if we can find a match and return true.

Let’s see if the string contains the word which does not exist in an item of the list.

# app.py

data_string = "The last season of BoJack Horseman was good"

# initializing test list
listA = ['Stranger Things', 'S Education', 'Game of Thrones']

# printing original string
print("The original string : " + data_string)

# printing original list
print("The original list : " + str(listA))

# using list comprehension
# checking if string contains list element
res = [ele for ele in listA if(ele in data_string)]

# print result
print("Does string contain any list element : " + str(bool(res)))

Output

python3 app.py
The original string: The last season of BoJack Horseman was good
The original list : ['Stranger Things', 'S Education', 'Game of Thrones']
Does string contain any list element: False

Check if an element exists in the list using the list.count()

To check if the item exists in the Python list, use the list.count() method.

The syntax of the list.count() function is following.

list.count(elem)

Python List count(item) method returns the occurrence count of the given element in the list. If it’s greater than 0, it means a given item exists in the list.

# app.py

listA = ['Stranger Things', 'S Education', 'Game of Thrones']

if listA.count('Stranger Things') > 0:
    print("Yupp, 'Stranger Things' found in List : ", listA)

Output

python3 app.py
Yupp, 'Stranger Things' found in List :  ['Stranger Things', 'S Education', 'Game of Thrones']

Check if an element exists in the list using any()

Using Python any() function is the most classical way in which you can perform this task and also efficiently. The any() function checks for a match in a string with a match of each list element.

# app.py

data_string = "The last season of Game of Thrones was not good"

listA = ['Stranger Things', 'S Education', 'Game of Thrones']

print("The original string : " + data_string)

print("The original list : " + str(listA))

res = any(item in data_string for item in listA)

print("Does string contain 'Game of Thrones' list element: " + str(res))

Output

python3 app.py
The original string : The last season of Game of Thrones was not good
The original list : ['Stranger Things', 'S Education', 'Game of Thrones']
Does string contain 'Game of Thrones' list element: True

From the output, Game of Thrones exists in the list.

Check if the list contains an item using not in inverse operator.

Python “not in” is an inbuilt operator that evaluates to True if it does not finds a variable in the specified sequence and False otherwise.

To check if the list contains a particular item, you can use the not in inverse operator. Let’s see the following example.

listA = ['Stranger Things', 'S Education', 'Game of Thrones']
if 'Witcher' not in listA:
    print("Yes, 'Witcher' is not found in List : ", listA)

Output

python3 app.py
Yes, 'Witcher' is not found in List :  ['Stranger Things', 'S Education', 'Game of Thrones']

 Python in and not in operators work fine for lists, tuples, sets, and dicts (check keys).

Python all() method to check if the list exists in another list

In this program, you will learn to check if the Python list contains all the items of another list and display the result using the python print() function.

We will use two lists having overlapping values. One of these is the big one that holds all the items of the second one.

  1. List1 – List1 contains all or some of the items of another list.
  2. List2 – It is the subset of the first one.

See the following code.

# app.py

List1 = ['Homer',  'Bart', 'Lisa', 'Maggie', 'Lisa']

List2 = ['Bart', 'Homer', 'Lisa']

check = all(item in List1 for item in List2)

if check is True:
    print("The list {} contains all elements of the list {}".format(List1, List2))
else:
    print("No, List1 doesn't have all elements of the List2.")

Output

python3 app.py
The list ['Homer', 'Bart', 'Lisa', 'Maggie', 'Lisa'] contains all elements of the list ['Bart', 'Homer', 'Lisa']

You can see that the first list contains all the elements of the second list. This is because we have checked the first list using the all() method.

Conclusion

There are many approaches you can use to determine whether an item exists in the list or not. For example, we have seen the following ways.

  1. Using Python “in” operator
  2. Using Python list comprehension
  3. Using list.count() method
  4. Using Python any() function

That is it for this tutorial.

Can list contains string Python?

Python Find String in List using count() We can also use count() function to get the number of occurrences of a string in the list. If its output is 0, then it means that string is not present in the list. l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C'] s = 'A' count = l1.

How do you check if a list does not contain a character in Python?

Use the any() function to check if a string contains an element from a list, e.g. if any(substring in my_str for substring in my_list): . The any() function will return True if the string contains at least one element from the list and False otherwise.

How do you check if list does not contains an item Python?

To check if the list contains an element in Python, use the “in” operator. The “in” operator checks if the list contains a specific item or not. It can also check if the element exists on the list or not using the list. count() function.

How do I check if a string is not in Python?

Using Python's "in" operator The simplest and fastest way to check whether a string contains a substring or not in Python is the "in" operator . This operator returns true if the string contains the characters, otherwise, it returns false .