在字符串

时间:2018-02-24 06:07:44

标签: python

我正在尝试在字符串中的最后一个单词之前插入'或'。

我希望它看起来像:

>>>test, test1, test2, or test3?

我尝试做什么以及我得到了什么:

i = input(', {}'.format('or ' if options[_][-1:] else '').join(options[_]) + '?')  
>>>test, or test1, or test2, or test3?

我的代码:

def main():
    options = {
        'o1': ['1', '2', '3'],
        'o2': ['one', 'two', 'three'],
        'o3': ['uno', 'dos', 'tres']
    }

    values = []

    i = ''
    for _ in options.keys():
        while i not in options[_]:
            i = input(', '.join(options[_]) + '?')
        values.append(i)

    print(values)

main()

3 个答案:

答案 0 :(得分:1)

这样怎么样:

def list_as_string(data):
    return ", ".join(data[:-1]) + ", or " + data[-1]

a = ['2', 'one', 'tres']

list_as_string(a)

输出:

'2, one, or tres'

答案 1 :(得分:0)

options = {
    'o1': ['1', '2', '3'],
    'o2': ['one', 'two', 'three'],
    'o3': ['uno', 'dos', 'tres']
}

for k,v in options.items():
    v.insert(2, "or")

print(options)

options2 = {
    'o1': ['1', '2', '3'],
    'o2': ['one', 'two', 'three'],
    'o3': ['uno', 'dos', 'tres']
}

for k,v in options2.items():
    v[-1] = "or " + v[-1]

print(options2)

不确定哪一个你喜欢这样写两个,第一个添加"或"作为一个项目,第二个添加"或"字符串到最后一项。

答案 2 :(得分:0)

python string api的其他方式:

def main():
    options = {
        'o1': ['1', '2', '3'],
        'o2': ['one', 'two', 'three'],
        'o3': ['uno', 'dos', 'tres']
    }

    for _ in options.keys():
        i = list((', '.join(options[_]) + '?').rpartition(","))
        i[1] = " or"
        j = ''.join(i)
        print(j)

main()

OUT:

1, 2 or 3?
one, two or three?
uno, dos or tres?