如何在python中删除列表中的空白?

时间:2018-12-10 13:41:54

标签: python

我是新来的,如果有什么不寻常的地方请原谅我 我知道删除一些空格很简单 但实际上我没有使用字符串,而是浮动元素列表 所以我正在使用append将数字放在列表中,但它们是这样传递的:

GlobalKey<_HomePageState> globalKey = GlobalKey();

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          leading: IconButton(
            icon: Icon(Icons.help),
            onPressed: () {
             globalKey.currentState.methodA();
            },
          ),
        ),
        body: HomePage(key: globalKey),
      ),
    );
  }
}
class HomePage extends StatefulWidget {
  HomePage({Key key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }

  void methodA() {}
}

我希望他们像这样:

[1.2, 3.5, 41.2, 2.9]

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:2)

列表中没有实际的空格。 __str__函数的编码方式就是这样(它的打印方式)。如果要打印出没有空格的最佳方法,最好先将其转换为字符串:

>>> test = [2, 32, 123, 1]
>>> test
[2, 32, 123, 1]
>>> print(str(test).replace(" ",""))
[2,32,123,1]

答案 1 :(得分:1)

这两个列表表示形式都相等,而不管逗号后添加的空格如何。多余的空格使其更易于阅读。

要真正测试它们是否相等,可以使用==比较:

>>> l1 = [1.2, 3.5, 41.2, 2.9]
>>> l2 = [1.2,3.5,41.2,2.9]
>>> l1 == l2
True

如果要使用不带空格的字符串表示形式,则可以使用str.join()

>>> l1 = [1.2, 3.5, 41.2, 2.9]
>>> '[%s]' % ','.join(map(str, l1))
'[1.2,3.5,41.2,2.9]'

答案 2 :(得分:0)

这是Python __str__的默认行为,但是请注意,它的Python可以覆盖默认行为。我不建议您更改默认代码__str__,而是编写自己的list类,以满足您的要求

class my_list(list):
    x=[]
    def __init__(self, argument):
        self.x=list(argument)

    def __str__(self):
        return '['+','.join(map(str,self.x))+']'

用于测试

print(my_list([1.2, 3.5, 41.2, 2.9]))   #[1.2,3.5,41.2,2.9,5,6]