линии фильтра со специальными словами в словаре [дубликат]

Не используйте дезинфицированную функцию mysql_ * (лишенная php 5.5 будет удалена в php 7). и вы можете сделать это с помощью mysqli или pdo

здесь полный запрос выбора

connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        // code here 
    }
} else {
    echo "0 results";
}
$conn->close();
?>

375
задан chaixdev 19 October 2015 в 20:31
поделиться

12 ответов

Если вы хотите проверить наличие abc в любой строке в списке, вы можете попробовать

some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
if any("abc" in s for s in some_list):
    # whatever

Если вы действительно хотите получить все элементы, содержащие abc, использовать

matching = [s for s in some_list if "abc" in s]
620
ответ дан A-B-B 3 September 2018 в 13:20
поделиться
mylist=['abc','def','ghi','abc']

pattern=re.compile(r'abc') 

pattern.findall(mylist)
0
ответ дан Bugs 3 September 2018 в 13:20
поделиться
my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

for item in my_list:
    if (item.find('abc')) != -1:
        print ('Found at ', item)
0
ответ дан chandra 3 September 2018 в 13:20
поделиться

Это довольно старый вопрос, но я предлагаю этот ответ, потому что предыдущие ответы не справляются с элементами в списке, которые не являются строками (или каким-то истребимым объектом). Такие элементы приведут к тому, что полное исключение списка завершится с исключением.

Чтобы изящно обрабатывать такие элементы в списке, пропуская неистребимые элементы, используйте следующее:

[el for el in lst if isinstance(el, collections.Iterable) and (st in el)]

, то с таким списком:

lst = [None, 'abc-123', 'def-456', 'ghi-789', 'abc-456', 123]
st = 'abc'

вы все равно получите соответствующие элементы (['abc-123', 'abc-456'])

Тест на итерабельность может быть не лучшим. Получил это отсюда: В Python, как определить, является ли объект итерируемым?

18
ответ дан Community 3 September 2018 в 13:20
поделиться

Просто выбросьте это: если вам нужно сопоставить более чем одну строку, например abc и def, вы можете поместить комбинацию двух списков следующим образом:

matchers = ['abc','def']
matching = [s for s in my_list if any(xs in s for xs in matchers)]

Выход:

['abc-123', 'def-456', 'abc-456']
49
ответ дан fantabolous 3 September 2018 в 13:20
поделиться
any('abc' in item for item in mylist)
5
ответ дан Imran 3 September 2018 в 13:20
поделиться

Насколько мне известно, оператор «for» всегда будет потреблять время.

Когда длина списка растет, время выполнения также будет возрастать.

Я думаю, что, поиск подстроки в строке с оператором 'is' немного быстрее.

In [1]: t = ["abc_%s" % number for number in range(10000)]

In [2]: %timeit any("9999" in string for string in t)
1000 loops, best of 3: 420 µs per loop

In [3]: %timeit "9999" in ",".join(t)
10000 loops, best of 3: 103 µs per loop

Но я согласен с тем, что инструкция any более читаема.

-1
ответ дан Iulian 3 September 2018 в 13:20
поделиться
for item in my_list:
    if item.find("abc") != -1:
        print item
9
ответ дан jamylak 3 September 2018 в 13:20
поделиться

Используйте filter, чтобы получить элементы, которые имеют abc.

>>> lst = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
>>> print filter(lambda x: 'abc' in x, lst)
['abc-123', 'abc-456']

Вы также можете использовать понимание списка.

>>> [x for x in lst if 'abc' in x]

Кстати, не используйте слово list как имя переменной, так как оно уже используется для типа list.

62
ответ дан MAK 3 September 2018 в 13:20
поделиться

Я новичок в python. Получил код, который работает и понятен

my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
    for str in my_list:
        if 'abc' in str:
            print(str)
0
ответ дан nick 3 September 2018 в 13:20
поделиться

Это самый короткий путь:

if 'abc' in str(my_list):
24
ответ дан RogerS 3 September 2018 в 13:20
поделиться

Вопрос: укажите информацию об abc

    a = ['abc-123', 'def-456', 'ghi-789', 'abc-456']


    aa = [ string for string in a if  "abc" in string]
    print(aa)

Output =>  ['abc-123', 'abc-456']
-1
ответ дан Soudipta Dutta 3 September 2018 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: