相关疑难解决方法(0)

使用Python迭代字符串中的每个字符

在C++中,我可以迭代std::string这样:

std::string str = "Hello World!";

for (int i = 0; i < str.length(); ++i)
{
    std::cout << str[i] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

如何在Python中迭代字符串?

python string iteration

502
推荐指数
6
解决办法
62万
查看次数

如何判断变量是可迭代的但不是字符串

我有一个函数接受一个参数,可以是单个项目或双项目:

def iterable(arg)
    if #arg is an iterable:
        print "yes"
    else:
        print "no"
Run Code Online (Sandbox Code Playgroud)

以便:

>>> iterable( ("f","f") )
yes

>>> iterable( ["f","f"] )
yes

>>> iterable("ff")
no

问题是字符串在技术上是可迭代的,所以我不能在尝试时捕获ValueError arg[1].我不想使用isinstance(),因为这不是很好的做法(或者我被告知).

python

74
推荐指数
4
解决办法
2万
查看次数

如何判断python变量是字符串还是列表?

我有一个例程,它将一个字符串列表作为参数,但我想支持传入一个字符串并将其转换为一个字符串列表.例如:

def func( files ):
    for f in files:
        doSomethingWithFile( f )

func( ['file1','file2','file3'] )

func( 'file1' ) # should be treated like ['file1']
Run Code Online (Sandbox Code Playgroud)

我的函数如何判断字符串或​​列表是否已传入?我知道有一个type功能,但是有更"pythonic"的方式吗?

python duck-typing list

61
推荐指数
7
解决办法
5万
查看次数

使用 dict 进行字符串翻译

我想用其他字母替换字符向量中的字母,使用用创建的字典dict,如下

import string

trans1 = str.maketrans("abc","cda")
trans = dict(zip("abc","cda"))
out1 = "abcabc".translate(trans1)
out = "abcabc".translate(trans)

print(out1)
print(out)
Run Code Online (Sandbox Code Playgroud)

所需的输出是 "cdacda"

我得到的是

cdacda
abcabc
Run Code Online (Sandbox Code Playgroud)

现在out1是这个期望的输出,但out不是。我不明白为什么会这样。如何使用通过创建字典dicttranslate功能?那么如果我想使用translatewith ,我必须改变trans什么?

python string

4
推荐指数
2
解决办法
8241
查看次数

动态类型设计:处理列表的递归性是一个好的设计吗?

缺乏维护动态类型代码的经验,我正在寻找处理这种情况的最佳方法:

(python中的示例,但可以使用任何动态类型的语言)

def some_function(object_that_could_be_a_list):
     if isinstance(object_that_could_be_a_list, list):
          for element in object_that_could_be_a_list:
              some_function(element)
     else:
          # Do stuff that expects the object to have certain properties 
          # a list would not have
Run Code Online (Sandbox Code Playgroud)

我对此感到非常不安,因为我认为一种方法应该只做一件事,而我认为它不像它应该的那样可读.所以,我很想做三个函数:第一个是"任何对象"和"排序"在另外两个之间,一个用于列表,另一个用于"简单"对象.然后,这会增加一些复杂性.

什么是最"可持续"的解决方案,以及保证易于维护的解决方案?对于那些我不知道的情况,python中有成语吗?提前致谢.

python coding-style list dynamic-typing

1
推荐指数
1
解决办法
129
查看次数

如何使Python将变量视为字符串的集合(列表或集合)

我有一个简单的代码如下:

for link in links:
    products[link] = get_products(link)
Run Code Online (Sandbox Code Playgroud)

我期待links成为一组字符串.但是,有时它只是一个链接,Python似乎将其分解为字符串中的单个字符,这不是我想要的.如何将链接视为一组字符串,即使它是单个字符串?

更新:链接来自:

def read_from_file(name):
    with open(name, 'r') as file:
        links = file.read()
        links_set = links.split('\n')    
    return links_set
Run Code Online (Sandbox Code Playgroud)

该文件每行包含一个链接.

python python-3.x

0
推荐指数
1
解决办法
82
查看次数